gpt4 book ai didi

c# - 通用类型传递和用法,我可以执行以下操作吗?

转载 作者:太空狗 更新时间:2023-10-29 20:05:24 25 4
gpt4 key购买 nike

我试图找出如何访问 CallMe<T>() 中的静态方法类DoSomething .反射是这里唯一的解决方案吗?我不想实例化 MyAction 类型的对象.另外,如果通过反射来做,有没有办法在方法中通过反射创建方法 CallMe<T>()只是一次然后多次调用它以对同一个“反射”方法执行多个操作?或者有什么比通过反射(reflection)更好的方法吗?我基本上想创建模板实现样式类,例如 MyAction定义如何 byte[] DoThis(string text)履行职责。 AskForSomething()然后将指定正在使用哪个模板,并根据该模板 CallMe<T>()将继续其工作。

    public class AskSomething
{
public void AskForSomething()
{
DoSomething doSomething = new DoSomething();
doSomething.CallMe<MyAction>();
}
}

public class DoSomething
{
public void CallMe<T>()
{
Type type = typeof(T);

//Question: How can I access 'DoThis(string text)' here?
//Most likely by reflection?
}
}

public class MyAction
{
public static byte[] DoThis(string text)
{
byte[] ret = new byte[0]; //mock just to denote something is done and out comes a byte array

return ret;
}
}

最佳答案

DoThis 定义一个接口(interface),让 MyAction 实现它,并用 T 类型参数约束为它的一个实例>哪里 T : IMyInterface

关于c# - 通用类型传递和用法,我可以执行以下操作吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13990217/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com