private void SaveMoney(string id...)
{
...
}
public void DoSthWithMoney(string action,string id...)
{
if(action=="save") return SaveMoney(string id);
...
}
为什么C#不允许我通过公共函数返回私有函数的空白?它甚至是相同的数据类型“void”...
或者数据类型是否无效?
以下代码是否真的是最短的解决方法?
if(action=="save") {
SaveMoney(string id);
return;
}
答案 0 :(得分:6)
void
不是C#中的类型。在这种情况下,void
表示absence of a return type or value,因此您无法像第一个示例中那样使用return
。
这与C不同,例如,void可以表示typeless or an unknown type。
答案 1 :(得分:5)
void
不是实际的返回(数据)类型! void
说没有结果。因此,即使您调用的方法也声明为void
,您也无法在声明为void
的方法中返回值。
我必须承认这将是一个很好的捷径,但事情并非如此: - )
还有一个想法:如果允许您想要的内容,void
将成为数据类型和也是该数据类型唯一可能的值,如return x;
被定义为将值x
返回给调用者。因此return void;
会将值void
返回给调用者 - 根据定义,这是不可能的。
例如,对于null
,这是不同的,因为null
是引用类型的有效值。
答案 2 :(得分:4)
这不是一种解决方法,它是正确的方法。
答案 3 :(得分:4)
即使这会编译我也不会推荐它。在这么小的方法中,很明显发生了什么,但如果它是一个更大的方法,下一个程序员会看到,眨眼,认为“我认为这是一个无效的方法”向上滚动,确认,向下滚动,按照SaveMoney方法,找出它什么都不返回等等。
您的“解决方法”一目了然。
答案 4 :(得分:1)
只需将方法更改为布尔值并返回0.