C# 用户定义的后缀

C# 用户定义的后缀,c#,C#,正如声明float x=1.0f是有效的,并且后缀f告诉编译器应该将它和等号之间的字符视为一个float一样,我们有没有办法为实现的类定义自己的后缀?比如说,你有这个班 class CustomString { string part1; string part2; } 你想用代码吗 CustomString测试=abc.defX 其中,X是一个后缀,告诉编译器使用“abc”初始化part1,使用“def”初始化part2?当然,像这样的东西必须在构造函数上构建,但我真正感兴趣

正如声明
float x=1.0f
是有效的,并且后缀
f
告诉编译器应该将它和等号之间的字符视为一个float一样,我们有没有办法为实现的类定义自己的后缀?比如说,你有这个班

class CustomString
{
    string part1;
    string part2;
}
你想用代码吗

CustomString测试=abc.defX


其中,
X
是一个后缀,告诉编译器使用
“abc”
初始化
part1
,使用
“def”
初始化
part2
?当然,像这样的东西必须在构造函数上构建,但我真正感兴趣的只是后缀定义部分。

不,没有任何方法可以做到这一点。

1.0f
是一个浮点常量。等号没有什么神奇之处-
(1f/10)
是一个有效的表达式,例如。所以问题应该是:有可能定义新的常量类型吗?(可能还有在编译时运行的代码,而不是在运行时运行的代码)。我一直认为编译时代码在某些方面非常有用(例如可选参数的默认值)。是 啊Linq更有用,泛型也更有用。。。就像标准数学运算的接口一样有用。从技术上讲,你可以编写一个C#rewriter,就像异步CTP一样。在将代码交给编译器之前,将对其进行分析和修改。Visual Studio会发出一点尖叫。。。。