搜索工作量:
还有一些我不记得了...
预想:每个“内置型” C#(如int
,float
,char
等等)是一个类,并且在从C#继承的每个类Object
的类。因此,每个“内置类型”都从Object
该类继承。
考虑到这种先入之见double
,例如,假设要设置一个变量,则需要使用“正常”语法设置一些属性。这是我的意思:
double number = new double();
number.leftSide= 5;
number.rightSide = 23;
Console.Write(number);
// Output:
// 5.23
但是C#有一个特殊的,创建一个相当于语法double
变量(在一种方式,它会做什么,我试过上面这样做,不就是上面的代码将实际工作):
double number = 5.23;
编译器了解到,浮点数将数字分为两个:5和23。
我的问题是我是否可以对自己的班级做同样的事情。例如,如果我有自己的Time
类(这只是一个示例,所以请不要建议使用内置的时间类),我希望可以像下面这样实例化它:
Time time = 10:25;
而且编译器会理解,冒号将数字分为小时和分钟(我假设这是我需要在Time
类中创建的属性)。
我听说过Roslyn CTP,但我正在寻找一种更简单,内置的方式来做我所描述的事情。
我可以做吗?
目前,这在C#中是不可能的。您最能做的就是定义从string
到的隐式转换Date
。例如
public class Time
{
public static implicit operator Time(string value)
{
// Initialize your object with value
// Similar to
var values = value.Split(':');
var hour = Convert.ToInt32(values[0]);
var min = Convert.ToInt32(values[1]);
. . .
}
. . . // Your fields, properties and methods
}
这会让你
Time time = "10:25";
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句