繁体   English   中英

c#:有没有直接变量引用的类返回值

[英]c#: Have class return value without direct variable reference

我试图弄清楚是否可以创建一个默认返回值而没有方法/变量引用的类。

public class Attribute
{
    public int defaultValue = _base + _mods;

    private int _base;
    private int _mods;

    public Attribute (int b, int m)
    {
        _base = b;
        _mods = m;
    }
}

public class UseAttribute
{
    private Attribute att;

    public Start()
    {
        att = new Attribute(5,2);
    }

    public void CheckAttribute()
    {
        console.WriteLine("att: " + att); //Outputs:"att: 7"
    }
}

这是可以完成的事情,还是我必须始终使用 att.defaultValue ?

有一种方法可以做到这一点,它可以是隐式或显式转换。

public class Attribute
{  
    private int _base;
    private int _mods;

    public Attribute (int b, int m)
    {
        _base = b;
        _mods = m;
    }

    public static implicit operator int(Attribute attr) => attr._base + attr._mods;

    public override string ToString() => $"{this._base + this._mods}";
}

public class UseAttribute
{
    private Attribute att;

    public UseAttribute()
    {
        att = new Attribute(5,2);
    }

    public void CheckAttribute()
    {
        console.WriteLine("att: " + att); //Outputs:"att: 7"
    }
}

最后我不会去追求它,而是更好地使用方法或属性。

暂无
暂无

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

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