C# class 实现中接口变量的用途
Purpose of interface variable in C# class implementation
所以,开始熟悉Rider IDE。我定义了一个接口,然后设置了一个class来实现这个接口。当我使用 Roslyn fix 实现接口成员时,它生成了一些我以前没有注意到的东西,我想知道它的目的是什么。
interface IThing
{
string GetThing();
}
然后,当我生成样板时:
class ThingClass : IThing
{
private IThing ThingImplementation;
public string GetThing()
{
throw new NotImplementedException();
}
}
那么,IThing
ThingImplementation
的实例有什么用?
Rider 提供了两个用于实现接口的快速修复。
第一个 'Implement missing members' 产生以下(预期)代码:
class ThingClass : IThing
{
public string GetThing()
{
throw new System.NotImplementedException();
}
}
第二个'Delegate implementation of 'IThing' to new field'产生原始问题中的代码:
class ThingClass : IThing
{
private IThing thingImplementation;
public string GetThing()
{
return thingImplementation.GetThing();
}
}
当您想要更改实现时,第二个版本很有用 "on-the-fly"。可能取决于构造函数参数,或者您的用例是什么。
所以,开始熟悉Rider IDE。我定义了一个接口,然后设置了一个class来实现这个接口。当我使用 Roslyn fix 实现接口成员时,它生成了一些我以前没有注意到的东西,我想知道它的目的是什么。
interface IThing
{
string GetThing();
}
然后,当我生成样板时:
class ThingClass : IThing
{
private IThing ThingImplementation;
public string GetThing()
{
throw new NotImplementedException();
}
}
那么,IThing
ThingImplementation
的实例有什么用?
Rider 提供了两个用于实现接口的快速修复。
第一个 'Implement missing members' 产生以下(预期)代码:
class ThingClass : IThing
{
public string GetThing()
{
throw new System.NotImplementedException();
}
}
第二个'Delegate implementation of 'IThing' to new field'产生原始问题中的代码:
class ThingClass : IThing
{
private IThing thingImplementation;
public string GetThing()
{
return thingImplementation.GetThing();
}
}
当您想要更改实现时,第二个版本很有用 "on-the-fly"。可能取决于构造函数参数,或者您的用例是什么。