将字符串分配给类会将其重定向到属性

tom*_*szs 0 c# string class variable-assignment

我有一个名为Car的类,其属性为Name。现在,每次我想更改自己的汽车名称时,都必须输入Car1.Name =“ Porka Turbo”。现在我想完成的是这样写的代码少了五个字符:

Car1 = "Porka Turbo"
Run Code Online (Sandbox Code Playgroud)

它应该像这样工作:如果我分配一个从Car类派生的类,它应该进行常规的类分配,但是当我向我的类分配字符串时,应该将此字符串重定向到名为“ Name”的属性。

这样它将与以下命令相同:

Car1.Name = "Porka Turbo"
Run Code Online (Sandbox Code Playgroud)

在C#.NET 3.5中是否可行?如果没有,您是否知道其他任何方法来减少此特定示例中的内容?

Jon*_*eet 5

假设Car1类型为的变量Car,则无法执行。您也不应该-这是可读性的噩梦。

分配给变量应该意味着将变量的值更改为赋值运算符RHS上的(可能是转换的)值。您正在尝试更改运算符的含义。

如果您对可读性更高的字符数感到困扰:

Car1.Name = "Porka Turbo";
Run Code Online (Sandbox Code Playgroud)

可以创建一个单字母方法:

Car1.X("Porka Turbo");
Run Code Online (Sandbox Code Playgroud)

或其他财产:

Car1.N = "Porka Turbo";
Run Code Online (Sandbox Code Playgroud)

我什么都不会做。保持代码简单易读。如果您将“源代码中的最小字符数”优先于可读性,那么将来需要维护代码的人(可能是您)将不会感谢您。

编辑:尚未提出的一个选项是提供从字符串到Car的隐式转换。这让你写

Car1 = "Porka Turbo";
Run Code Online (Sandbox Code Playgroud)

但它不会更改现有汽车的名称属性-它将创建汽车并将该值分配给Car1。我仅在其他人将其作为选项而不提及它的问题的情况下才提及:)