我可以创建一个派生类型的System.String吗?

时间:2014-08-25 16:03:27

标签: c# asmx

在我的ASP.NET SOAP Webservice中,我使用各种字符串数组(List)作为输入参数,例如....

List<string> CarrierCodes = new List<string>();

...但我觉得很烦人,我不能给这个对象一个可分辨的名字,比如......

List<CarrierCode> CarrierCodes = new List<CarrierCode>();

... CarrierCode对象只是一个简单的System.String

因为无法从System.String派生对象 - 是否有其他方法可以为这样的字符串对象实现“漂亮的类型标签”?

2 个答案:

答案 0 :(得分:3)

你有两个选择。

  1. 保持原样。实际上,如果你有一个名为CarrierCodes的变量,并且它是一个List<string>,那就没有错。它本身应该充分描述。

  2. 自己上课。

    public class CarrierCode
    {
        public string Code { get; set; }
        //anything else in the future...
    }
    

    如果您想稍后添加其他内容,这很方便。

  3. 使用类型别名

    using CarrierCode = System.String;
    

    警告,这将在整个文件中有效。这是可能的,但在非常简单的类型上没有建议。将其保存为您不喜欢一遍又一遍打字的超复杂数据类型。

答案 1 :(得分:0)

如果你真的想要一种类型来说某些特定的东西,那就把它变成非通用的:

public class CarrierCodeCollection: Collection<String>
{
  <constructor implementations here>
}

然后你会毫不怀疑你正在使用CarrierCodes的集合。这里的缺点是你必须为每个实体实现一个集合类,即使它们都可能只是普通的旧字符串。