隐含运算符?

Jos*_*ose 5 .net c# casting operator-overloading implicit

我需要一些帮助.我正在创建一个像这样的SelectItem类:

public class SelectItem<T> where T : class
{
    public bool IsChecked { get; set; }
    public T Item { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我希望以下代码有效

SelectItem<String> obj = new SelectItem<String> { Item = "Value" };

obj.IsChecked = true;

String objValue = obj;
Run Code Online (Sandbox Code Playgroud)

而不是必须这样做:

String objValue = obj.Item;
Run Code Online (Sandbox Code Playgroud)

我怎么能做到这一点?

Meh*_*ari 12

public static implicit operator T(SelectItem<T> obj) {
    return obj.Item;
}
Run Code Online (Sandbox Code Playgroud)