在C#中," this"分配的示例是什么?
时间:2020-03-05 18:55:16 来源:igfitidea点击:
有人在Cmethod中有有用的this
分配示例吗?面试时曾有人要求我这样做,但我仍然有兴趣回答自己。
解决方案
回答
我们不能覆盖"此"。它指向当前的对象实例。
回答
从语法角度来看,唯一正确的位置是C3.0中的扩展方法,当我们将方法的第一个参数指定为foo(ftype this,...)时。然后可以将此扩展名用于ftype的任何实例。但是,这只是语法而不是真正的此ovveride操作。
回答
使用this关键字可确保仅访问当前类型范围内的变量和方法。当字段/属性与局部变量或者方法参数之间存在命名冲突时,可以使用此方法。
通常在构造函数中使用:
private readonly IProvider provider; public MyClass(IProvider provider) { this.provider = provider; }
在此示例中,我们将参数提供程序分配给私有字段提供程序。
回答
如果要求我们为此分配一些内容,则有很多示例。我想到的是告诉一个控制者,他的父亲是谁:
class frmMain { void InitializeComponents() { btnOK = new Button(); btnOK.Parent = this; } }
回答
当其他答案说我们不能分配给" this"时,其他答案是错误的。是的,我们不能使用类类型,但可以使用结构类型:
public struct MyValueType { public int Id; public void Swap(ref MyValueType other) { MyValueType temp = this; this = other; other = temp; } }
在任何时候,结构都可以通过分配" this"来改变自身,就像这样。