Hig*_*ian 1 c# class type-conversion conversion-operator implicit-conversion
鉴于代码:
public class Filter<T>
{
private bool selected = false;
public bool Selected { get { return selected; } }
private T value;
public T Value { get{ return this.value; } set { this.value = value; selected = true; }
}
public class Test
{
public void filter()
{
DateTime a= new DateTime();
Nullable<DateTime> b = new DateTime(); //Work Like a Charm
Filter<DateTime> c = new DateTime(); //Dosent Work
}
}
Run Code Online (Sandbox Code Playgroud)
在Nullable<T>该new DateTime()可直接分配到变量.在我的班上,它不起作用.我想了解我所缺少的东西.
我觉得这很简单.但我无法用言语来找到答案.
你必须实现隐式运算符:
public static implicit operator Filter<T>(T value)
{
return new Filter<T>() { Value = value };
}
Run Code Online (Sandbox Code Playgroud)
隐式运算符将允许您在不显式写入Filter<T> filter = (Filter<T>)value;(显式强制转换)的情况下强制转换类型,而只是Filter<T> filter = value;(隐式强制转换).
| 归档时间: |
|
| 查看次数: |
172 次 |
| 最近记录: |