强制函数返回值并使编译错误C#

我在该类中有一个类和一个方法。 但是这个类方法返回一个字符串。 当我调用类方法时,我没有得到错误,尽管我没有捕获字符串值返回。 有没有办法可以让C#和.net强制我在返回值时捕获值。 这是我的意思的一个例子。

1-创建一个class级考试。

class test { public string mystring() { return "BLAH"; } } 

2-从程序或其他类调用类方法

 test mystring = new test(); mystring.mystring(); 

我在Visual Studio工作时的编译器并不抱怨我没有捕获返回值。 这是正常的还是我错过了什么。 我可以强制编译器通知我该函数返回一个值,但我没有抓住它?

提前感谢您提出的任何建议。

您可以将其转换为属性而不是方法:

  public string myString { get { return "Blah"; } } 

如果只是调用属性,则无法编译:

 myString.myString; //Results in "Only assignment, call, increment, decrement, await, and new object expressions can be used as a statement" Error 

总之,没有。 不是武力本身。

不捕获返回值是司空见惯的。 核心库中的示例比比皆是(例如,向Hashset添加元素,该函数实际上返回一个bool来标记它是否实际添加或是否已经存在 – 取决于我可能会或可能不关心的个别实现) 。

当然,你总是可以做一些像string str = MyFunction()这样的东西,然后每次都不要使用str但我想你可能已经知道了。

您可以尝试通过右键单击解决方案资源管理器中的项目,单击“属性”,转到“构建”选项卡并将“ 警告处理为错误”设置为“全部”来将警告设置为错误 。 这将强制您在构建之前解决所有警告,并将捕获一些您未分配的此方案。

编译器无法知道您的方法的唯一目的是返回字符串,或者它是否有一些影响状态的工作,因此当您不将结果分配给任何内容时它不会抱怨。

但是,根据MikeH的回答,您可以将其设置为get get property。 当你没有把它分配给任何东西时,这会抱怨。

如果你的函数有副作用,那么你应该创建未使用的变量并捕获值。 编译器发布选项删除此变量。

但是如果您在function上没有副作用:您可以使用Visual Studio工具,例如“Watch window”和“Immediate window”