标签: out

'ref'和'out'关键字之间有什么区别?

我正在创建一个函数,我需要传递一个对象,以便它可以被函数修改.有什么区别:

public void myFunction(ref MyClass someClass)
Run Code Online (Sandbox Code Playgroud)

public void myFunction(out MyClass someClass)
Run Code Online (Sandbox Code Playgroud)

我应该使用哪个以及为什么?

c# reference ref out keyword

851
推荐指数
15
解决办法
37万
查看次数

在Moq中分配/ ref参数

是否可以使用Moq(3.0+)分配out/ ref参数?

我看过使用Callback(),但Action<>不支持ref参数,因为它基于泛型.我也最好It.Isref参数的输入上放置一个约束(),尽管我可以在回调中做到这一点.

我知道Rhino Mocks支持这个功能,但我正在研究的项目已经在使用Moq了.

c# parameters moq ref out

268
推荐指数
7
解决办法
11万
查看次数

如何明确地抛弃一个参数?

我正在打电话:

myResult = MakeMyCall(inputParams, out messages);
Run Code Online (Sandbox Code Playgroud)

但我实际上并不关心这些消息.如果它是一个输入参数我不关心我只是传入一个null.如果是回归我不关心我只是把它关掉.

有没有办法用out做类似的事情,或者我是否需要声明一个我将忽略的变量?

c# out

88
推荐指数
4
解决办法
3万
查看次数

返回两个值,Tuple vs'out'vs'truct'

考虑一个返回两个值的函数.我们可以写:

// Using out:
string MyFunction(string input, out int count)

// Using Tuple class:
Tuple<string, int> MyFunction(string input)

// Using struct:
MyStruct MyFunction(string input)
Run Code Online (Sandbox Code Playgroud)

哪一个是最佳实践,为什么?

c# struct tuples out value-type

76
推荐指数
3
解决办法
2万
查看次数

我何时应该使用参数?

我不明白何时应该使用输出参数,如果我需要返回多个类型,我个人将结果包装成新类型,我发现使用它比使用更容易.

我见过像这样的方法,

   public void Do(int arg1, int arg2, out int result)
Run Code Online (Sandbox Code Playgroud)

有没有真正有意义的案例?

怎么样TryParse,为什么不返回一个ParseResult类型?或者在较新的框架中返回一个null-able类型?

.net c# out

50
推荐指数
4
解决办法
3万
查看次数

paypal express checkout =>错误:安全标头无效

错误:安全标头无效数组

(
    [TIMESTAMP] => 2014%2d04%2d29T07%3a24%3a29Z
    [CORRELATIONID] => 6af6749c848d6
    [ACK] => Failure
    [VERSION] => 109%2e0
    [BUILD] => 10800277
    [L_ERRORCODE0] => 10002
    [L_SHORTMESSAGE0] => Security%20error
    [L_LONGMESSAGE0] => Security%20header%20is%20not%20valid
    [L_SEVERITYCODE0] => Error
)
Run Code Online (Sandbox Code Playgroud)

我一次又一次地得到这个错误,无法继续前进.我已经检查了所有的api用户名,密码和签名,一切都是正确的,但主要的问题是,所有的东西都已存储在paypal沙盒帐户中,但它无法返回页面.我的意思是说横切显示在沙盒帐户中,但它不能发送到显示页面.我错了吗?

paypal out express

40
推荐指数
2
解决办法
6万
查看次数

为什么迭代器方法不能采用'ref'或'out'参数?

我今天早些时候试过这个:

public interface IFoo
{
    IEnumerable<int> GetItems_A( ref int somethingElse );
    IEnumerable<int> GetItems_B( ref int somethingElse );
}


public class Bar : IFoo
{
    public IEnumerable<int> GetItems_A( ref int somethingElse )
    {
        // Ok...
    }

    public IEnumerable<int> GetItems_B( ref int somethingElse )
    {
        yield return 7; // CS1623: Iterators cannot have ref or out parameters            

    }
}
Run Code Online (Sandbox Code Playgroud)

这背后的理由是什么?

c# parameters ref out

37
推荐指数
4
解决办法
2万
查看次数

重定向System.out.println

我的应用程序有许多System.out.println()语句.

我想从println捕获消息并将它们发送到标准记录器(Log4j,JUL等).

怎么做 ?

java logging out redirectstandardoutput

32
推荐指数
4
解决办法
4万
查看次数

输出参数和异常

说我有以下代码:

    static void Fjuk(out string str)
    {
        str = "fjuk!";
        throw new Exception();
    }

    static void Main(string[] args)
    {
        string s = null;
        try
        {
            Fjuk(out s);
        }
        catch (Exception)
        {
            Console.WriteLine(s ?? "");
        }
    }
Run Code Online (Sandbox Code Playgroud)

当我测试它时,s已被初始化为"fjuk!" 当它在catch块中使用时.
这是由规范保证还是依赖于实现?(我已经搜索了C#3规范,但无法找到我自己)

c# exception out

32
推荐指数
3
解决办法
6475
查看次数

如何使用out参数声明泛型委托

Func<a, out b, bool>,只是不编译,如何声明我想要第二个参数是out一个?

我想这样使用它:

 public class Foo()
 {
     public Func<a, out b, bool> DetectMethod;
 }
Run Code Online (Sandbox Code Playgroud)

.net c# generics out func

25
推荐指数
3
解决办法
2万
查看次数