C#属性委托给对象

时间:2018-02-28 00:52:26

标签: class properties delegates

在我的WPF应用程序中,我使用许多属性进行绑定。 所有属性通常只返回特殊XNode的值。

因此我写了一个方法,它获取并设置节点的值。

例如:

public int Radius
    {
        get
        {
            return GetNodeValue<int>("Radius");
        }
        set
        {
            SetNodeValue("Radius", value);
        }
    }

因为我的许多属性总是有相同的代码,所以如果我能以更短的方式做到这一点会更好。

我想过使用一个可以执行代码的特殊类:

    public class CNodeProperty
    {
        public CNodeProperty(string name)
        {
            _Name = Name;
        }
        public static implicit operator int(CNodeProperty d)
        {
            return GetNodeValue<int>(_Name);
        }

        private string _Name;
    }

    public int Radius { get; set; } = new CNodeProperty("Radius");

这可以帮助我避免输入始终相同的代码。 问题:使用这种方式,我只能访问静态变量。但是在GetNodeValue内部,我还必须访问具有该属性的类的局部变量(我也可以将其赋予CNodeProperty的构造函数,但这不可能)。

我如何委托属性获取并设置为单独的类?

0 个答案:

没有答案