如何使用泛型来解决转换问题
本文关键字:转换 问题 解决 何使用 泛型 | 更新日期: 2023-09-27 18:34:08
我有以下情况:
public interface IParam
{
Object Value {get;set;}
}
public abstract class BaseClass: IParam
{
public virtual object Value {get;set;}
}
public class IntSubClass:BaseClass
{
public override object Value {get;set;}
}
向外界公开了这个接口。所有属性都可以通过IParam访问。这种方法的缺点是很多铸造问题。
IParam dummy = ParameterList[abc];
int index = (int)dummy.Value;
请求请告知如何使用泛型解决此问题。在外面,我只能公开通用接口。
如果我们假设参数可以是不同类型的,那么简单地说:否。
哦,你可以介绍泛型...但这只会改变事情
int val = (int)(paramList["abc"].Value);
自:
int val = ((IParam<int>)paramList["abc"]).Value;
并没有多大帮助。唯一的其他选择是隐式转换运算符,它 a: 不适用于 interface
s,b: 不是很清楚/很明显。
坦率地说,我只会使用演员阵容。这不是问题。一个盒子/开箱不是很昂贵,代码的目的很清楚。
您可以创建具有T Value {get; set;}
方法的IParam<T>
接口。这会解决你的问题吗?您将无法转换为 IParam,而是在 per/
相关文章:
- 资源文件转换问题
- C# 中的日期时间转换问题
- 日期选取器的字符串到日期时间转换问题
- 对象数据源转换问题 - 异常
- NHibernate 从数据库获取时出现时间转换问题
- C# WPF 复合转换问题
- 如何使用泛型来解决转换问题
- EF 的强制转换问题
- 用于 vb.net 转换问题的 C# 代码
- C# 泛型转换问题
- 我的登录从 VB.NET 到 C# 的转换问题
- C# 隐式转换问题
- MVC C# 中的 DTO 出现问题可能存在转换问题
- 使用soapweb服务时的转换问题
- 从C#到VBNet的转换问题
- ASP.NET网站到Web应用程序的转换问题-无法加载类型';ClassName';AND为所有现有网页设置
- LINQ查询中DateTime为null的转换问题
- 嵌套三元隐式类型转换问题:无法确定条件表达式的类型,因为两者之间没有隐式转换
- C#ReadLine转换问题
- Fortran90到C#的转换问题