![](/img/trans.png)
[英]C# Make a class return its instance without a function or variable
[英]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.