.NET kısıtların böyle türü yoktur - Kendine has taban veya çocuk sınıfına
Ref nesne artığını mümkündür.
where T: struct
tip argüman
where T: class
tip argüman
where T: new()
tip argüman bir kamu parametresiz yapıcı olması gerekir bir başvuru türü olması gereken bir değer türü olmalıdır: mevcut kısıtlamalar sadece altı türleri (Constraints on Type Parameters bakınız) mevcuttur
where T: <base class name>
tür bağımsız değişkeni
where T: <interface name>
tipi argüman veya belirtilen interfa uygulamak gerekir olabilir ya da belirli bir taban sınıfından türetilmesi gerekir T için verilen ce
where T: U
tip argüman veya ilk itiraz döküm yapabilirsiniz, kendi türüne dize döküm istiyorsanız U
için verilen argüman türetilmesi gerekir. Ama emin olmak için tip parametre üzerinde kısıtlamayı koyamazsınız bu döküm oluşabilir: -
static T GetObjectFromRegistry<T>(string regPath)
{
string regValue = //Getting the regisstry value...
T objectValue = (T)(object)regValue;
return objectValue ;
}
Başka bir seçenek arayüzünü oluşturun:
public interface IInitializable
{
void InitFrom(string s);
}
Ve sınırlama olarak koydu:
static T GetObjectFromRegistry<T>(string regPath)
where T: IInitializable, new()
{
string regValue = //Getting the regisstry value...
T objectValue = new T();
objectValue.InitFrom(regValue);
return objectValue ;
}
Ben Türleri derleme zamanında belirlenir fark .NET –