是否可以使用匿名类型实现接口.我有一段我想要工作的代码,但不知道该怎么做.
我有几个答案要么说不,要么创建一个实现接口的类构造新的实例.这不是很理想,但我想知道是否有一种机制可以在界面上创建一个瘦动态类,这将使这个变得简单.
public interface DummyInterface
{
string A { get; }
string B { get; }
}
public class DummySource
{
public string A { get; set; }
public string C { get; set; }
public string D { get; set; }
}
public class Test
{
public void WillThisWork()
{
var source = new DummySource[0];
var values = from value in source
select new
{
A = value.A,
B = value.C + "_" + value.D
};
DoSomethingWithDummyInterface(values);
}
public …Run Code Online (Sandbox Code Playgroud) 我在C#中使用接口而不是编写一个实现该接口的全新类,是否可以创建一个实现该接口的对象?界面定义为
public interface ITokenStore
{
IToken CreateRequestToken(IOAuthContext context);
IToken CreateAccessToken(IOAuthContext context);
}
Run Code Online (Sandbox Code Playgroud)
我知道在java中我可以这样
ITokenStore tokenStore = new ITokenStore()
{
IToken CreateRequestToken(IOAuthContext context) {
IToken requestToken = null;
return requestToken;
}
IToken CreateAccessToken(IOAuthToken context) {
IToken accessToken = null;
return accessToken;
}
};
Run Code Online (Sandbox Code Playgroud)
是否有一种等效的方法来实例化c#中的接口实例?
我已经多次看到这个问题,但我仍然不明白。在 Java 中,我可以这样做:
new Thread(new Runnable(){
@Override
public void run() {
System.out.println("Hello");
}
}).start();
Run Code Online (Sandbox Code Playgroud)
在我看来,这是实现只使用一次的接口的一种非常好的方式。有没有办法在 C# 中做到这一点?我已经听说过委托,但这只能部分解决问题,因为我只能实现一种方法。如果我有多种方法,在 C# 中执行此操作的“正确”方法是什么?我是否必须为此实现另一个类?
提前致谢!-克里斯
编辑:我不想专门创建一个新线程。这是关于在 C# 中从 Java 执行匿名实现之类的正确方法的更普遍的问题。这不是关于那个具体的例子。