c#中方法调用的设计概念(模式?)?
我想创建一个结构,在这里我调用一个方法,这个方法参数应该只能从实例类中使用 我的确切意思是…,我有一个包含如下函数的类:c#中方法调用的设计概念(模式?)?,c#,C#,我想创建一个结构,在这里我调用一个方法,这个方法参数应该只能从实例类中使用 我的确切意思是…,我有一个包含如下函数的类: public class Functions { public Request GetId(int item) { //return instanced request } public Request SetId(int item) { //re
public class Functions
{
public Request GetId(int item)
{
//return instanced request
}
public Request SetId(int item)
{
//return instanced request
}
}
我有一个invoker类,它有一个名为Invoke(Request)的方法
我想使用Functions类作为该方法的参数,但接受的参数只能来自该类
实际上,我这样做是为了从Invoke方法类中的functions类创建一个实例,如下所示:
Functions Requests = new Functions();
Invoke(Requests.GetId(1));
…因此,当我想调用Invoke方法时,它如下所示:
Functions Requests = new Functions();
Invoke(Requests.GetId(1));
但是有没有办法解决这个问题,我只能调用实例类的请求,比如:
Invoke(GetId(1));
也许我的想法是错误的,但我希望,我想要达到的目标是明确的。(将函数与调用器类分开,但保持它们之间的关系)
谢谢大家! 为什么不让类和方法成为静态的
public static class Functions
{
public static Request GetId(int item)
{
//return instanced request
}
public static Request SetId(int item)
{
//return instanced request
}
}
然后
使用静态函数代码>
您将能够使用此syntex,然后:
Invoke(GetId(1))代码>
但这不是好的做法 因为通过引入静态,您的代码更难测试和维护……@Callumlington问题是如何使这个Invoke(GetId(1))代码>有效。这个问题很奇怪,因为“测试和维护”并不是问题所在。你说“为什么不让类和方法成为静态的”
“让你的问题开始讨论。我回答了你为什么不这么做。“当你给别人不好的建议时,你并不是在帮助他们。”卡姆林顿我同意他不应该那样做。但在给定的示例中,也没有其他方法以这种特定的方式调用给定的方法。我认为您应该仔细阅读,尤其是单一责任模式。当你用C#创建类时,你应该用一种能让你立即识别它们在做什么的方式来命名它们。因此,调用类函数
是一个坏名字,因为它是一个泛型名称。将其称为RequestModifiers
已经越来越近了,但仍然不太好,但我不知道该类要做什么。您应该调用其他方法中隐藏其意图的方法