C# 不从方法返回而不是从另一个开发环境返回时出现编译时错误

C# 不从方法返回而不是从另一个开发环境返回时出现编译时错误,c#,C#,在我的家庭开发环境中,如果我没有指定返回值的方法的返回变量,这就是编译时错误 然而,在工作中(我想VisualStudio的设置可能会有所不同),在这种情况下代码仍然可以很好地编译 例如 在我的代码中,我可以写以下内容(在工作中): 如您所见,我不编写字符串s=EditString(“…”);但这不会在家里编译 根据这个方法,我必须写: string s = EditString("abc"); 如果我没有明确指定返回变量,这对编译器有什么影响?(我假设编译器会自动完成赋值)?如果我没有从方法

在我的家庭开发环境中,如果我没有指定返回值的方法的返回变量,这就是编译时错误

然而,在工作中(我想VisualStudio的设置可能会有所不同),在这种情况下代码仍然可以很好地编译

例如

在我的代码中,我可以写以下内容(在工作中):

如您所见,我不编写字符串s=EditString(“…”);但这不会在家里编译

根据这个方法,我必须写:

string s = EditString("abc");
如果我没有明确指定返回变量,这对编译器有什么影响?(我假设编译器会自动完成赋值)?如果我没有从方法调用返回,我在哪里可以检查导致错误的设置


谢谢

我想你可能混淆了两件事

可以使用返回类型编写方法,但忽略返回值:

static string EditString(string s)
{
    return "abc";
}

static void Main()
{
    EditString("xyz");  // ok
}
但不能定义具有返回类型但不返回值的方法:

static string EditString(string s) // error: not all code paths return a value
{
}

我想你可能混淆了两件事

可以使用返回类型编写方法,但忽略返回值:

static string EditString(string s)
{
    return "abc";
}

static void Main()
{
    EditString("xyz");  // ok
}
但不能定义具有返回类型但不返回值的方法:

static string EditString(string s) // error: not all code paths return a value
{
}

你在家里犯错误的原因是错的。它不会产生警告或错误

但是,您可能尝试过做类似的事情,但是使用了属性或索引器。如果不使用结果,就不能调用属性-它本身不是一个语句表达式。换言之:

string[] x = ...;
x.Length; // Invalid
x[0]; // Invalid
int y = x.Length; // Valid
string z = x[0]; // Valid

如果你仍然相信你在家里看到的方法,请发布一个简短但完整的例子。如果您使用的是一个正常工作的C#编译器,您总是可以忽略方法的返回值。

您在家中错误的原因是错误的。它不会产生警告或错误

但是,您可能尝试过做类似的事情,但是使用了属性或索引器。如果不使用结果,就不能调用属性-它本身不是一个语句表达式。换言之:

string[] x = ...;
x.Length; // Invalid
x[0]; // Invalid
int y = x.Length; // Valid
string z = x[0]; // Valid

如果你仍然相信你在家里看到的方法,请发布一个简短但完整的例子。如果您使用的是正常工作的C#编译器,则始终可以忽略方法的返回值。

可能您安装了visual studio插件,如FxCop或Resharper,它会自动检查您的代码,并且您将其级别设置得太高


您收到的警告可以忽略,我会禁用它。

可能您安装了visual studio插件,如FxCop或Resharper,它会自动检查您的代码,并且您已将其级别设置得太高


您得到的警告可以忽略,我将禁用它。

也许您启用了“将警告显示为错误”项目/解决方案设置。也许您启用了“将警告显示为错误”项目/解决方案设置。以上我都知道。我认为您混淆了我的问题,因为我只提到方法调用,而没有提到定义(我知道如果签名返回类型,定义必须在正文中返回)。请看我在第一篇文章中的编辑。更重要的是,我认为你最初的问题令人困惑。如果有一个简短但完整的例子来说明这个问题,那就更好了。我认为您混淆了我的问题,因为我只提到方法调用,而没有提到定义(我知道如果签名返回类型,定义必须在正文中返回)。请看我在第一篇文章中的编辑。更重要的是,我认为你最初的问题令人困惑。不过,如果有一个简短但完整的例子来说明这个问题,那就更好了。不要再犯错误了。这可能是由于我的resharper和我使用的类似工具中的更新。我在返回变量时出错,但只使用一些框架方法,而不使用我自己的自定义方法。是的,您的示例更清晰:)不再出现错误。这可能是由于我的resharper和我使用的类似工具中的更新。我在返回变量时出错,但只使用一些框架方法,而不使用我自己的自定义方法。是的,你的例子更清晰:)