In C #, the ternary operator giving an error: only assignment, call, increment, decrement and new object expressions can be used as an operator

I have the following code C#-

using System;

class Program 
{
    static void Main()  
    {
        int number = 1;
        int isNumber10;
        (number==10)?(isNumber10=1):(isNumber10=0);
        Console.WriteLine(isNumber10);
    }
}

When compiling it gives me an error -

error CS0201: only assignment, call, increment, decrement and new expression of an object can be used as an operator

Q CI am using the following code -

#include <stdio.h>
int main(){
    int isNumber10;
    int number = 1;
    (number==10)?(isNumber10=1):(isNumber10=0);
    printf("%d\n",isNumber10);
    return 0;
}

And this code works fine.

Now the two programs are exactly the same. So why does it work in C, but not in C #?

+6
source share
3 answers

- , . , , . (, "" )

:

isNumber10 = number == 10 ? 1 : 0;

?: , (1 0) isNumber10.

, :

public void M<T>(T value)
{
}

:

M((number==10)?(isNumber10=1):(isNumber10=0));

. , # , . (, , , ). - , , . " ". , , , .

, . ( , ). M , . ( , )

, :

- , # . , , . , if SQL ( , , set = x null, "A" else "B" ), # ( switch - )

+10

:

int number = 1;
int isNumber10 = (number == 10) ? 10 : 0;

Console.WriteLine(isNumber10);
+1

, C # .

-

C -

(John has beard)?(Ask John to save):(ask John to not save);

.

:

Ask John to = (John has beard)? (save):(not save);

.

# -

Ask John to = (John has beard)? (save):(not save);

-

C -

(number==10)?(isNumber10=1):(isNumber10=0);

-

isNumber10 = (number==10)? 1:0;

but in C # only the following Correct syntax is

isNumber10 = (number==10)? 1:0;
0
source

All Articles