C# 我可以在另一个方法中调用静态方法吗?

C# 我可以在另一个方法中调用静态方法吗?,c#,class,static,methods,C#,Class,Static,Methods,基本问题:如何在另一个方法中调用静态方法。请帮忙 public static class Class1 { public static string RenderCompareStatus() { bool isFound = Class1.Found(id); } private static bool Found(string id) { } //错误消息:不包含已找到的定义您使用的类名 e、 g.Class1.Found代码看起来不错-如果这是您的

基本问题:如何在另一个方法中调用静态方法。请帮忙

public static class Class1
{
  public static string RenderCompareStatus()
  {
      bool isFound = Class1.Found(id);
  }

  private static bool Found(string id)
  {

  }
//错误消息:不包含已找到的定义

您使用的类名
e、 g.
Class1.Found

代码看起来不错-如果这是您的实际代码,而不仅仅是一个最小的示例,您需要在
RenderCompareStatus
的范围内指定
id
(或一些其他变量),以作为参数传递给
Found
我将您的示例扩展为一个完全工作的示例:

using System;

public static class Class1
{
    public static void Main()
    {
        Console.WriteLine(RenderCompareStatus());
    }

    public static string RenderCompareStatus()
    {
        String id = "test";
        bool isFound = Found(id);
        return "Test: " + isFound;
    }

    private static bool Found(string id)
    {
        return false;
    }
}
结果是:

Test: False
编辑:如果上述示例与您的代码类似,但您的代码不起作用,请提供更多详细信息,例如您得到的准确错误以及产生错误的代码的更完整示例


编辑:已将
找到的公共静态bool(字符串id)
更改为
找到的私有静态bool(字符串id)
重新编译,并且仍然有效。

两个方法都缺少返回语句。如果不为非void方法指定返回值,则会出现编译错误


可以使用Class1.Found(id)调用静态方法。但是,如果你从同一个类中调用它,你可以在调用之前省略“Class1”。

正文中的第一句话有些描述性,但是你的标题/主题没有描述性。请考虑修改。好了,这是一个最小的代码。我已经在代码中进行了建议的编辑。但它仍然不起作用。在您从中返回布尔值之前,“查找”不会编译,因此在您对其进行排序之前,调用它不会起作用。“查找”是私有的,因此您无法调用它。更改为public@Tzury:您不需要使用类名。谢谢。这对你有用吗。这就是我所做的,我在下面的语句bool isFound=Found(id)中得到一个错误;@sa:我使用
csc.exe
和记事本(而不是Visual Studio)对此进行了测试,但你不应该得到任何编译错误,它可以正常工作。如果将鼠标悬停在
Found()
上,弹出窗口会显示什么?好的,我将尝试这样做。但是有一个问题:我可以在另一个静态方法中调用一个静态方法吗?这个静态方法在C#中的一个静态类中@sa:您的示例缺少
Class1
上的结束语
}
。另外,
Found()
必须返回一个
bool
(在我的例子中:
返回false;
)。@sa:我的例子是从另一个
静态方法(
RenderCompareStatus()
)调用一个
静态方法(
Found()
)。