首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从父类调用属性,如c#中的字典

从父类调用属性,如c#中的字典
EN

Stack Overflow用户
提问于 2017-03-30 12:00:44
回答 2查看 75关注 0票数 0

也许我也不知道如何去寻找它,但事实是我找不到任何帮助我的东西。

有没有像assoc数组(字典)这样的从父类调用属性的方法?

示例:

代码语言:javascript
运行
复制
using System;

class Foobar
{
    public string bla;
    public Foobar()
    {
        this.bla = "hello world";
    }
}

public class Test
{
    public static void Main()
    {
        Foobar x = new Foobar();
        Console.WriteLine(x.bla); //this works (prints hello world)
        Console.WriteLine(x["bla"]); //this wont work but is my achivment
    }
}

澄清我想要的是..。

我想要创建一个具有一些属性的类,例如

代码语言:javascript
运行
复制
class SomeClass
{
    private string aaa {get;set;};
    private string bbb {get;set;};
    private string ccc {get;set;};
    private string ddd {get;set;};
    ....
}

并通过字典在另一个类中循环这一点。

代码语言:javascript
运行
复制
SomeClass x = new SomeClass();
IDictionary<string, string> dict = new Dictionary<string, string>();
dict["a"] = "aaa";
dict["b"] = "bbb";
dict["d"] = "ddd";

foreach( d in dict )
{
    someMethode(x[d]);
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-03-30 12:07:46

用这种方式修改类

代码语言:javascript
运行
复制
class Foobar
{
    public string bla { get; set; }
    public Foobar()
    {
        this.bla = "hello world";
    }

    public string this[string name]
    {
        get
        {
            return this.GetType().GetProperty(name).GetValue(this, null).ToString();
        }
    }
}

样本:https://dotnetfiddle.net/XboHOg

票数 4
EN

Stack Overflow用户

发布于 2017-03-30 12:20:12

您应该用这种方式来扩展^^

代码语言:javascript
运行
复制
using System;


    class Program
    {
        static void Main(string[] args)
        {
            Foobar x = new Foobar();
            Console.WriteLine(x.bla); //this works (prints hello world)
            Console.WriteLine(x["bla"]); //this wont work but is my achivment
        }
    }

    class Foobar : Class
    {
        public Foobar()
        {
            this.bla = "hello world";
        }

        public string bla { get; set; }
    }

    class Class
    {
        public string this[string name]
        {
            get
            {
                return this.GetType().GetProperty(name).GetValue(this).ToString();
            }
        }
    }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43117291

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档