+ 3
What is difference between "is" and "as" operators in c#?
2 Respostas
+ 3
The difference between the two operators in C# is that "is" checks if a object can be converted to a specific type, and returns true if possible; "as", on the other hand, actually attempts to convert an object to a specific type and returns null if it fails.
+ 2
Let's take a look at a example of "is":
public class X
{
int value = 5;
}
Now, let's say we create a instance of X in main:
X object_x = new X();
If we use is to check if object_x is a X object:
Console.WriteLine(object_x is X);
This will print true to the console as object_x is derived from our class X.
Now let's look at "as" along with the same class X, and the same object object_x. Let's try to convert our object to a string:
string string_x = object_x as string;
"as" will attempt to convert object_x to a string. If not possible, it will string_x will be equal to null. Luckily, we can convert a object to a string, so it won't be equal to null.