Compilerfehler CS0077
Der as-Operator muss mit einem Referenztyp oder einem Typ, der NULL-Werte zulässt, verwendet werden. ("int" ist ein Werttyp, der keine NULL-Werte zulässt.)
An den as -Operator wurde ein Werttypübergeben. Da NULL von as
zurückgegeben werden kann, kann nur ein Verweistyp oder ein Nullwerte zulassender Typ übergeben werden.
Mithilfe des Musterabgleichs mit dem is-Operator können wir die Typüberprüfung und die Typzuweisungen jedoch direkt in einem Schritt durchführen.
Im folgenden Beispiel wird CS0077 generiert:
// CS0077.cs
using System;
struct S
{
}
class M
{
public static void Main()
{
object o;
S s;
o = new S();
s = o as S; // CS0077, S is not a reference type
// Use pattern matching instead of as
if (o is S sValue)
{
s = sValue;
}
}
}
Feedback zu .NET
.NET ist ein Open Source-Projekt. Wählen Sie einen Link aus, um Feedback zu geben: