Sınıf özelliklerine ve sınıfın kendisine uygulanan bir özel özniteliğim var. Şimdi, özel özniteliğimi uygulamak zorunda olan tüm sınıflar, tek bir temel sınıftan türetilmiştir.Özel özniteliği, yalnızca C# içindeki Belirli türlere uygulanabilecek şekilde kısıtla?
Özel Özniteliğimi, yalnızca temel sınıfımdan türetilmesi gereken sınıflara uygulanabilmesi için nasıl kısıtlayabilirim? Bunu nasıl yaparım?
abstract class MyBase {
[AttributeUsage(AttributeTargets.Property)]
protected sealed class SpecialAttribute : Attribute {}
}
class ShouldBeValid : MyBase {
[Special]
public int Foo { get; set; }
}
class ShouldBeInvalid {
[Special] // type or namespace not found
[MyBase.Special] // inaccessible due to protection level
public int Bar{ get; set; }
}
(orijinal cevap: Kendimi yanlış kanıtlamak zaman
Bunu zorlamak (otomatik olarak yapılmak üzere) veya kısıtlamak mı istiyorsunuz (başka türlere uygulanamaz)? –
Temel sınıfımdan türetilmeyenler dışındaki türlere uygulanmaması için onu kısıtlamak istiyorum. –
Düzenleme: darn, Sanırım yapmam için bir yol bularak kendimle çeliştim! Benim için yeni bir tane ... –