Bit*_*ter 0 c# arrays string implicit-conversion
在我的项目中,我有一个类(可能有多个派生类),其中一个字段是一个字符串。
我们也有实例化这个类的许多对象的代码(出于技术原因,每个实例都有单独的代码)。所以代码文件可能很长。
对于大多数情况,这是可以的。但在极少数情况下,我需要有一个字符串数组作为 TestValue。我知道我可以将其声明为string[]. 但是因为通常我们只分配单个字符串,所以当只需要一个字符串时,有可能不必总是在代码中显式创建一个数组,就像这样:
public class Datapoint
{
public uint Id;
public string[] TestValue;
}
public void CreateEntries()
{
Table.Add(new Datapoint { Id = 1, TestValue = "123" });
Table.Add(new Datapoint { Id = 2, TestValue = "12.9" });
Table.Add(new Datapoint { Id = 3, TestValue = "Enabled" });
Table.Add(new Datapoint { Id = 4, TestValue = "Temperature" });
Table.Add(new Datapoint { Id = 5, TestValue = { "12.3", "9.8", "7.3" } });
}
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?谢谢!
您可以使用以下params选项创建构造函数:
public class Datapoint
{
public uint Id;
public string[] TestValue;
public Datapoint(uint id, params string[] testValue)
{
Id = id;
TestValue = testValue;
}
}
Run Code Online (Sandbox Code Playgroud)
用法是:
Table.Add(new Datapoint(1, "123"));
Table.Add(new Datapoint(2, "12.9"));
Table.Add(new Datapoint(3, "Enabled"));
Table.Add(new Datapoint(4, "Temperature"));
Table.Add(new Datapoint(5, "12.3", "9.8", "7.3"));
Run Code Online (Sandbox Code Playgroud)