c# - C# 中的 ref 参数

标签 c# .net

首先,我是 C# 编程的新手。

我读取了

的参数
ImageObj.getBounds(ref GraphicsUnit unit);

当我尝试这个时,

ImageObj.getBounds(ref GraphicsUnit.Pixel);

我仍然遇到错误。但这似乎工作得很好。

GraphicsUnit u = GraphicsUnit.Pixel;
ImageObj.getBounds(ref u);

两者有什么区别,第一个怎么错的?谢谢。

最佳答案

GraphicsUnit.Pixel 是一个属性,您不能在 C# 中使用 ref/out 参数传递属性。这是因为 ref/out 就像其他语言中指向指针的指针,但属性不是变量 - 它是 2 个方法:getter 和 setter,所以,你不能传递一个指向值指针的指针,因为你没有给它自己赋值。

添加: 好的,GraphicsUnit.Pixel 实际上是一个 enum 成员 - 你也不能通过 ref/out 传递它参数,因为它是一个常量。

关于c# - C# 中的 ref 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6007336/

相关文章:

c# - 将 SqlDependency 与命名队列一起使用

c# - lock 语句在幕后做了什么?

.net - 为什么在单击按钮时为 DropDownList 触发 SelectedIndexChanged?

c# - 什么是最快的通用集合?

c# - 在 Akkanet 中使用依赖注入(inject)时如何传递 actor 依赖

c# - 通用方法返回不同的通用集合

c# - Dispatcher.Invoke with anonymous delegate 在 Silverlight 中有效但在 WPF 中无效

c# - 事务 Rollback() 是否有机会抛出异常?

c# - 在子类的构造函数中调用基构造函数

.net - Solr是否可用于.Net?