C#属性可以接受多个值吗?

lom*_*axx 8 .net c# anti-patterns properties

这可能有点反模式,但C#类的属性是否可以接受多个值?

例如,假设我有一个Public int属性,我总是希望它返回一个int,但我希望能够通过分配十进制,整数或其他一些数据类型来设置属性.所以我的问题是,属性是否可以接受多个值?

Nic*_*rdi 10

我想你的意思要问的是:如何显式铸造工作intdecimal

您询问的是隐式转换,它会自动将一个对象转换为另一个定义的类型.您将无法为此执行此操作int,decimal因为它们已在框架中定义,并且您无法decimal通过将其转换为a 来缩小范围int.但是,如果您使用它作为您创建的实际对象的示例,则可以使用上面的隐式链接,以了解有关其工作原理以及如何实现它的更多信息.

但是你总是可以使用convert方法将它们转换为正确的类型;

public int MyProperty { get; set; }
...
obj.MyProperty = Convert.ToInt32(32.0M);
obj.MyProperty = Convert.ToInt32(40.222D);
obj.MyProperty = Convert.ToInt32("42");
Run Code Online (Sandbox Code Playgroud)