Nullable Eigenschaft in generischer Schnittstelle [Duplikat]C#

Ein Treffpunkt für C#-Programmierer
Anonymous
 Nullable Eigenschaft in generischer Schnittstelle [Duplikat]

Post by Anonymous »

Ich habe einige der anderen Fragen zum Thema nullierbare Typen in Generika gelesen und verstehe immer noch nicht, warum MinmaxBase und myintdecl kompilieren und YourIntdecl nicht. 'Iminmaxdecl.MinValue'. 'YourIntdecl.minValue' kann 'IminmaxDecl.MinValue' nicht implementieren, da es nicht den passenden Rückgabetyp 'Short' enthält. Int16 -Typ Param), aber mit der Einschränkung erhalte ich diesen Fehler: < /p>

Der Typ 'Short?' Kann nicht als Typparameter 'T' im generischen Typ oder in der Methode 'iminmaxdecl' verwendet werden. Der nullbare Typ 'kurz?' erfüllt nicht die Einschränkung von 'System.icompable'. Nullbare Typen können keine Schnittstellenbeschränkungen erfüllen.

Code: Select all

public interface IMinMaxDecl where T : IComparable
{
T? MinValue { get; set; } // needs to be nullable because it is optional
T? MaxValue { get; set; } // needs to be nullable because it is optional
}

public abstract class MinMaxBase : IMinMaxDecl where T : IComparable
{
public T? MinValue { get; set; }
public T? MaxValue { get; set; }
}

public class MyIntDecl : MinMaxBase; // compiles fine

public class YourIntDecl : IMinMaxDecl
{
public Int16? MinValue { get; set; }
public Int16? MaxValue { get; set; }
}

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post