<分区>
Possible Duplicate:
Making a generic property
我不太确定该怎么做,但我想做的是创建一种特殊类型的属性,它将在 get
和 set< 中执行特定任务
,并将在通用类型上定义。
例如,当这样写时:
MyProp<String> name;
将对字符串值执行预定义的get
和set
。
如何做到这一点?
谢谢!
标签 c# generics properties
<分区>
Possible Duplicate:
Making a generic property
我不太确定该怎么做,但我想做的是创建一种特殊类型的属性,它将在 get
和 set< 中执行特定任务
,并将在通用类型上定义。
例如,当这样写时:
MyProp<String> name;
将对字符串值执行预定义的get
和set
。
如何做到这一点?
谢谢!
最佳答案
你可以像这样创建一个泛型类:
public class MyProp<T>
{
private T _value;
public T Value
{
get
{
// insert desired logic here
return _value;
}
set
{
// insert desired logic here
_value = value;
}
}
public static implicit operator T(MyProp<T> value)
{
return value.Value;
}
public static implicit operator MyProp<T>(T value)
{
return new MyProp<T> { Value = value };
}
}
...然后像这样在类中使用它:
class SomeClass
{
public MyProp<int> SomeProperty { get; set; }
}
隐式运算符意味着您不需要显式设置或获取 MyProp
的 Value
属性,而是可以编写代码以更“自然”的方式访问该值"方式:
SomeClass instance = new SomeClass();
instance.SomeProperty = 32;
int someInt = instance.SomeProperty;
关于c# - C# 中的泛型属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2587236/