gpt4 book ai didi

c# - 将 generic 隐式转换回 T

转载 作者:太空狗 更新时间:2023-10-29 18:00:30 25 4
gpt4 key购买 nike

如果我写一个泛型类,比如 class MyGeneric<T>是否可以编写一个隐式转换为 T 类型,这样我就可以做类似的事情:

public class MyGeneric<T>
{
...
}

public class GenericProperties
{
public MyGeneric<string> MyGenericString {get;set;}

public void UseMyGeneric()
{
string sTest = MyGenericString;
MyGenericString = "this is a test";
}
}

是否可以通过重载运算符来做到这一点?我知道如果我的类(class)不是通用的...

最佳答案

是的..但不要过度,这往往会使人感到困惑。我只会将它用于包装器类型。

class Wrapper<T>
{
public T Value {get; private set;}
public Wrapper(T val) {Value = val;}

public static implicit operator T(Wrapper<T> wrapper) {return wrapper.Value;}
public static implicit operator Wrapper<T>(T val) {return new Wrapper<T>(val);}
}



var intWrapper = new Wrapper<int>(7);
var usingIt = 7 * intWrapper; //49

Wrapper<int> someWrapper = 9; //woohoo

关于c# - 将 generic<T> 隐式转换回 T,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2010066/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com