我是新的C#并且目前正在阅读Murach的C#2012.我遇到的方法为定义的参数赋值,我有点困惑.在其他语言中,如果方法需要返回多个值,则可以返回包含多个值的对象.但是我不确定如何在方法中使用"out".我也一直在关注MSDN在线资源,但仍不清楚如何使用"out".例如,如果我想编写一个接受四个参数的方法,我怎样才能让这个方法为定义为"out"的参数赋值.
private void calcValues(decimal decVal, out decimal decHigh, out decimal decMid, out decimal decLow)
{
decimal highVal = 0.00M;
decimal midVal = 0.00M;
decimal lowVal = 0.00M;
highVal = (decVal * decHigh);
midVal = (decVal * decMid);
lowVal = (decVal * decLow);
}//CALCVALUES METODH END
Run Code Online (Sandbox Code Playgroud)
如果有人能帮助我理解这种"外出"机制,我将非常感激.我已经对此进行了在线搜索,但无法在其上提出一个简单的例子.
谢谢.
你只是...... 分配给他们:
decHigh = 0M;
decMid = 13M;
decLow = 42M;
Run Code Online (Sandbox Code Playgroud)
请注意,因为它们是out,所以在它们"明确分配"之前你不能从中读取它们; 他们在进入时的价值没有定义.这样调用者可以这样做:
decimal foo;
if(SomeMethod("bar", out foo)) {...}
Run Code Online (Sandbox Code Playgroud)
而不是必须分配任意值foo:
decimal foo = 0M;
if(SomeMethod("bar", ref foo)) {...}
Run Code Online (Sandbox Code Playgroud)
但是,正如你所说:out很难理解.您可能还会考虑返回具有 3个值的内容:
private SomeType CalculateValues(decimal decVal) {
//... some maths...
return new SomeType(...);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
235 次 |
| 最近记录: |