Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Typen "type1" kan inte användas som typparameterns parameternamn i den generiska typen eller metoden "type2". Den nullbara typen "type1" uppfyller inte villkoret "type2". Nullbara typer kan inte uppfylla några gränssnittsbegränsningar.
En nullbar värdetyp motsvarar inte dess icke-nullbara motsvarighet. I exemplet som följer uppfyller villkoret BaseInterface
men ImplStruct
ImplStruct?
inte eftersom Nullable<ImplStruct>
inte implementerar BaseInterface
.
Med hjälp av koden som följer som exempel är en lösning att ange ett vanligt
ImplStruct
som det första typargumentet i anropet tillTestMethod
. ÄndraTestMethod
sedan för att skapa en null-version avImplstruct
i sin retursats:return new Nullable<T>(t);
Följande kod genererar CS0313:
// cs0313.cs
public interface BaseInterface { }
public struct ImplStruct : BaseInterface { }
public class TestClass
{
public T? TestMethod<T, U>(T t) where T : struct, U
{
return t;
}
}
public class NullableTest
{
public static void Run()
{
TestClass tc = new TestClass();
tc.TestMethod<ImplStruct?, BaseInterface>(new ImplStruct?()); // CS0313
}
public static void Main()
{ }
}
Feedback om .NET
.NET är ett öppen källkod projekt. Välj en länk för att ge feedback: