gpt4 book ai didi

c# - C# 是否有方法内部方法的概念?

转载 作者:太空狗 更新时间:2023-10-29 20:50:26 40 4
gpt4 key购买 nike

我一直在使用 javascript,并且在函数内部使用了很多函数。我在 C# 中尝试过,但它们似乎不存在。如果我有以下内容:

public abc() {


}

如何编写一个只能被调用的方法 d()从方法内部方法 abc() ?

最佳答案

我不会太担心在方法级别上限制对方法的访问,但在类级别上,您可以使用 private 来限制方法对特定类的访问。

另一种选择是使用 lambdas/匿名方法,或者如果您使用的是 C# 4.0,Action/Tasks 在您的方法中创建它们。

使用委托(delegate)的匿名方法示例 (C# 1/2/3/4) 用于您的特定示例(包括。我需要一个可以采用字符串参数并返回字符串的操作?) 会是这样的:

delegate string MyDelegate(string);

public void abc() {
// Your code..

MyDelegate d = delegate(string a) { return a + "whatever"; };
var str = d("hello");
}

.. 使用 C# 3/4:

public void abc() {
// Your code..

Func<string, string> d = (a) => { return a + "whatever"; };
var str = d("hello");
}

..通过private方法使用更理想的解决方案:

private string d(string a)
{
return a + "whatever";
}

public void abc()
{
// Your code..

var str = d("hello");
}

根据您对另一个答案的评论:我只想将它放在方法的底部,然后从一些较早的代码中调用它。

这是不可能的,您需要使用委托(delegate)或 Actions 为您的方法定义一个变量,因此它需要在您调用它时完全初始化。然后您将无法在方法的底部定义它。一个更好的选择是简单地在您的类上创建一个新的 private 方法并调用它。

关于c# - C# 是否有方法内部方法的概念?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13969962/

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