C# 方法作为构造函数的参数?
我正在写一个K-最近邻分类器类。我想让客户端能够指定要使用的距离函数 myC# 方法作为构造函数的参数?,c#,constructor,C#,Constructor,我正在写一个K-最近邻分类器类。我想让客户端能够指定要使用的距离函数 myKNN分类器对象的构造函数能否将方法作为参数?在Python中,我将按如下方式执行此操作: class KNNClassifier: def __init__(self, examples, membership, n_classes, distance_func): self.examples = examples self.membership = membe
KNN分类器
对象的构造函数能否将方法作为参数?在Python中,我将按如下方式执行此操作:
class KNNClassifier:
def __init__(self, examples, membership, n_classes, distance_func):
self.examples = examples
self.membership = membership
self.n_classes = n_classes
self.distance_func = distance_func
self.m = len(self.membership)
self.n = len(self.examples[0])`
这可以用C语言完成吗?我是C#的新手,请举一个简单的例子 是的,您可以使用
Func
、Action
和delegates
执行此操作:
行动:
Func:
委派:是的,您可以使用
Func
、操作
和委派
来执行此操作:
行动:
Func:
代理:您将使用。下面是一个简单的示例,使用:
您甚至可以将此与以下内容结合使用:
var foo = new MyClass<string>((a, b) => Math.Abs(a.Length - b.Length));
var foo=newmyclass((a,b)=>Math.Abs(a.Length-b.Length));
您将使用。下面是一个简单的示例,使用:
您甚至可以将此与以下内容结合使用:
var foo = new MyClass<string>((a, b) => Math.Abs(a.Length - b.Length));
var foo=newmyclass((a,b)=>Math.Abs(a.Length-b.Length));
请参见此处以获取参考:绝对可以使用委托作为参数。上面的链接提供了一个很好的答案。请参见此处以供参考:绝对可以使用委托作为参数。上面的链接提供了一个很好的答案。虽然正确,但请注意,您不必使用泛型来实现这一点。@LordTakkera是的,您是对的,泛型对于回答这个问题不是绝对必要的,但我觉得在本例中说明它们的用法会很有帮助。我只是指出了这一点,因为OP听起来好像不熟悉C#,我的同事很难理解泛型,更不用说泛型委托中的泛型了。虽然正确,但请注意,您不必使用泛型来完成此任务。@LordTakkera是的,您是对的,泛型不是回答问题的绝对必要条件,但我觉得在这个例子中说明它们的用法会很有帮助。我只是指出了这一点,因为OP听上去不熟悉C,我的同事也很难理解泛型,更不用说泛型委托中的泛型了。Func
和Action
也是委托。Func
和Action
也是委托。
var foo = new MyClass<string>((a, b) => Math.Abs(a.Length - b.Length));