我正在实现一个TryParse(字符串s,Out对象结果)方法.如果解析失败,我不想触摸out参数,因此任何先前的结果将保持不变.但VS2k8不会让我.无论如何,我必须设置out对象的值.
我是否应该为了取悦编译器而放置result = result?我错过了什么吗?
你的建议result = result不起作用,因为它是一个out参数 - 它没有明确地分配给你开始,所以在你给它赋值之前你不能读它的值.
result = null;
Run Code Online (Sandbox Code Playgroud)
绝对是object出去参数的正确方法.基本上default(T)用于T你所拥有的任何类型.(default运算符在泛型方法中很有用 - 对于我通常只使用的非泛型代码null,0,无论如何.)
编辑:根据鲍里斯的评论,可能值得详细说明ref参数和out参数之间的区别:
输出参数
参考参数