gpt4 book ai didi

c# - 如何将 A 类型的泛型对象转换为 A

转载 作者:行者123 更新时间:2023-11-30 14:09:40 25 4
gpt4 key购买 nike

我有一个 MyClass<object> 类型的对象我需要将其转换为 MyClass<int>据我所知,它包含整数。

如果我只是尝试进行强制转换是无法编译的:

MyClass<object> a = new MyClass<object>();
MyClass<int> b = (MyClass<int>) a;

出了什么问题,怎么办?

最佳答案

您可以使用隐式 转换运算符

class MyClass<T>
{
public static implicit operator MyClass<T>(MyClass<object> input)
{
return null;
}
}

然后转换有效

MyClass<object> a = new MyClass<object>();
MyClass<int> b = (MyClass<int>) a;

//you don't have to write cast type
MyClass<int> c = a;

虽然您仍然需要实现转换的确切细节。

编辑:如果您想显式调用 cast,只需将 implicit 关键字更改为 explicit

class MyClass<T>
{
public static explicit operator MyClass<T>(MyClass<object> input)
{
return null;
}
}

这意味着您仍然可以使用原始类型转换,但这将变得无效

   //will not compile now !
MyClass<object> a = new MyClass<object>();
MyClass<int> b = a;

关于c# - 如何将 A<T> 类型的泛型对象转换为 A<T'>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27962334/

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