Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Można użyć as operatora do wykonywania niektórych rodzajów konwersje między typami zgodny odniesienia lub typów nullable.Poniższy kod przedstawia przykład.
class csrefKeywordsOperators
{
class Base
{
public override string ToString()
{
return "Base";
}
}
class Derived : Base
{ }
class Program
{
static void Main()
{
Derived d = new Derived();
Base b = d as Base;
if (b != null)
{
Console.WriteLine(b.ToString());
}
}
}
}
Uwagi
as Operator jest jak operacja cast.Jednakże, jeśli konwersja nie jest możliwe, as zwraca null zamiast wzbudzania wyjątku.Rozważmy następujący przykład:
expression as type
Kod jest równoważne z następującego wyrażenia, chyba że expression zmienna jest wyznaczana tylko jeden raz.
expression is type ? (type)expression : (type)null
Należy zauważyć, że as operator wykonuje konwersje odniesienia, konwersje dopuszcza wartości null i konwersje boksie.as Operatora nie można wykonać inne konwersje, takie jak zdefiniowane przez użytkownika konwersje, które zamiast przeprowadza się przy użyciu wyrażeń cast.
Przykład
class ClassA { }
class ClassB { }
class MainClass
{
static void Main()
{
object[] objArray = new object[6];
objArray[0] = new ClassA();
objArray[1] = new ClassB();
objArray[2] = "hello";
objArray[3] = 123;
objArray[4] = 123.4;
objArray[5] = null;
for (int i = 0; i < objArray.Length; ++i)
{
string s = objArray[i] as string;
Console.Write("{0}:", i);
if (s != null)
{
Console.WriteLine("'" + s + "'");
}
else
{
Console.WriteLine("not a string");
}
}
}
}
/*
Output:
0:not a string
1:not a string
2:'hello'
3:not a string
4:not a string
5:not a string
*/
Specyfikacja języka C#
Aby uzyskać więcej informacji, zobacz Specyfikacja języka C#. Specyfikacja języka jest ostatecznym źródłem informacji o składni i użyciu języka C#.
Zobacz też
Informacje
?: — Operator (odwołanie w C#)
Słowa kluczowe operatora (odwołanie w C#)
Koncepcje
Przewodnik programowania w języku C#