我想创建一个只接受基本类型的构造函数,我该怎么做?
像这个例子:
public Test(PrimitiveType type)
{
}
我需要在构造函数中完成它并且它是可选的,所以我想创建一个无参数构造函数和一个带参数的构造函数。
最佳答案
根据您想要实现的目标,您可能需要查看所谓的“可转换类型”,例如实现 IConvertible
接口(interface)的类型如下:
bool 值
,字节
,字节
,Int16
,UInt16
,Int32
,UInt32
,Int64
,UInt64
,单例
,双
,十进制
,日期时间
,Char
和字符串
。
因此,如您所见,这几乎涵盖了您想使用基本类型实现的大部分内容。
所以,通过这样写方法
public void Test(IConvertible primitive)
{
if (primitive is Double) ....
if (primitive is String) ....
}
您会将输入类型限制为以下类型(无结构等)。
或者,您也可以将其实现为通用方法:
public void Test<T>(T primitive) where T : IConvertible
{
if (primitive is Double) ....
if (primitive is String) ....
}
既然你设置了这个约束,你总是可以将你的类型转换为一个类型,比如:
public void Test<T>(T primitive) where T : IConvertible
{
var myval = Convert.ToDecimal(primitive);
....
}
关于c# - 我可以定义一个只接受原始类型的方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24169901/