繁体   English   中英

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

[英]Filling Array with Custom Defined Type in C#

当尝试用我的自定义类型类填充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如下填充:

在此处输入图片说明

如果扩展了该表,则我指定的值将向下扩展。 我的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 };
    }
}

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

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

为了看到“用户友好的值”,可以覆盖Object类上存在的toString方法,也可以用DebuggerDisplay属性装饰想要显示的属性(在上面的注释中,写给Adam V!)

例:

 public override string ToString()
    {
        return name;
    }

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM