回答
对象是普通的数据类型,你可以这样操纵它。
private object _classmember;
public object classmember
{
get { return _classmember; }
set
{
_classmember = value;
if (_classmember.GetType()==typeof(Boolean))
{
//Do your stuff
MessageBox.Show("boolean");
}
if (_classmember.GetType() == typeof(int))
{
//Do your stuff
MessageBox.Show("int");
}
if (_classmember.GetType() == typeof(double))
{
//Do your stuff
MessageBox.Show("double");
}
//Declare all the necessary datatypes like the above
}
}
用法会像
classmember = true;
classmember = 1;
classmember = 6.6;
声明为object
,可以在后来is
测试:
public object MyProperty { get; set; }
public void DoSomething()
{
if(MyProperty is bool)
{
bool mp = MyProperty as bool;
// do something with boolean type mp
}
else if(MyProperty is string)
{
string mp = MyProperty as string;
// do something wit string type mp
}
// ....
}
在Visual Studio的新版本(我认为2015年版本以上),你可以结合类型检查和演员:
public void DoSomething()
{
if(MyProperty is bool mp)
{
// do something with boolean type mp
}
else if(MyProperty is string mp)
{
// do something wit string type mp
}
// ....
}
与通用类相比,这种方法的好处是属性类型可以在对象生命周期中更改。
在大多数语言中都有Object数据类型,其中所有其他数据类型都从中继承。
你可以使用一个通用类:
public class MyThing<T>
{
public T MyProperty { get; set; }
}
现在你说什么类型将是当你创建类:
var myIntObject = new MyThing<int>();
var myStringObject = new MyThing<string>();
myIntObject.MyProperty = 5;
myStringObject.MyProperty = "Hello world";
我喜欢这种方法。但是,如果指定值的类型可能在对象生存期中发生更改,则它有限制。没有OP告诉他更多关于他的用例的信息,我们就无法得知它。如果类型不会改变,那么泛型方法是更清洁 –
嗯,这是可能的,但我会假设,如果数据类型正在改变对象的生命周期,那里有代码味道可能需要修复。 – DavidG
我完全同意 –
- 1. 定义POJO类中的数据类型,当一个字段可以是多种类型
- 2. 可以是一个类型的成员是一个目标?
- 3. 自定义ValidationAttribute多种数据类型
- 4. 确定类成员的数据类型
- 5. 成员函数参数可以是相同的类类型吗?
- 6. 基于另一个数据成员的类数据成员类型?
- 7. 一个超类的函数可以访问一个子类的数据成员
- 8. 如何用可寻址的成员定义用户定义的数据类型?
- 9. 是否可以比较两种类型,如果一种可以从另一种类型中指定的话?
- 10. 我们可以在excel-vba中定义一个可以有多个预定义值的数据类型吗?
- 11. 我可以将参数类型指定为多种类型之一而不是TypeScript中的任何类型?
- 12. 完成一种类型的数据
- 13. 是否可以根据Alfresco中另一种定义的类型创建约束?
- 14. 专业模板类成员函数只有一种类型的
- 15. 是否可以将块定义为类的成员?
- 16. 我可以定义一个可以采用多种可能值类型的泛型吗? (VB.NET)
- 17. 我可以指定类型参数的类型成员的约束吗?
- 18. Bootstrap:是否可以定义两种类型的链接?
- 19. 我可以使用一种数据类型来定义C中的多个函数吗?
- 20. 有没有一种方法可以在定义类的类中引入一个泛型类型的约束?
- 21. 可以是多种类型(“工作”)的人员/工作者的对象模型
- 22. 是否可以更改SQL用户定义的数据类型?
- 23. 定义一个类型的数组类
- 24. 可以在头文件中定义一个非常长的类函数成员?
- 25. 为每个类成员编写一个类的成员类型是否有意义?
- 26. 一种类型与多种类型
- 27. 是否可以在delphi类上定义一个虚拟静态成员?
- 28. 是否可以根据函数参数的类型定义的映射来定义函数返回类型?
- 29. C#类可以返回或是多种类型的控件
- 30. 是否可以创建一个未定义类型的方法?
使对象。 – jdweng
创建泛型类并在实例化时定义类型 –
泛型是否适合您? – DavidG