在C#中使用自定义类型填充数组

时间:2016-06-01 16:17:02

标签: c# arrays

当尝试使用我的自定义类型类填充C#中的数组时,该数组会填充命名空间中类的位置。但是,我需要使用我使用该类型指定的值填充数组。

我尝试使用这些实现中的每一个来定义我的数组,结果相同:

List<FieldName> fieldNames = new List<FieldName>() { "event_ref", "user_id", "sys_time" };

FieldName[] fieldNames = { "event_ref", "user_id", "sys_time" };

在这两种情况下,对于所有三个字段,在较低函数调用中实现的值(没什么花哨的)是ElectronicSJP.DatabaseIF.FieldName

设置断点后,我可以看到fieldNames填充为:

enter image description here

如果扩展了该表,我指定的值将处于下一级别。我FieldName的课程定义如下:

class FieldName
{
    private string name = "";
    public static implicit operator string(FieldName fn)
    {
        return (fn == null) ? null : fn.name;
    }
    public static implicit operator FieldName(string fn)
    {
        return new FieldName { name = fn };
    }
}

我怀疑我可能需要添加另一个隐式运算符,或者两个,所以我可以使用一些帮助,或者您认为可以解决此问题的任何其他想法。感谢。

1 个答案:

答案 0 :(得分:2)

当调试器显示对象或对象列表时,它将显示类型而不是特定字段。

为了查看&#34;用户友好值&#34;,可以覆盖Object类上存在的toString方法,或者可以使用DebuggerDisplay属性修饰要显示的属性(信用于Adam) V在评论中高于上述!)

示例:

 public override string ToString()
    {
        return name;
    }

指向如何覆盖方法的链接。 https://msdn.microsoft.com/en-us/library/ms173154.aspx