【问题标题】:How to access dispose method from fields that are in auto implemented properties如何从自动实现的属性中的字段访问 dispose 方法
【发布时间】:2013-08-26 15:14:21
【问题描述】:

为什么我可以在Bmw getter setter方法中访问dispose方法,但在dispose()方法中不能访问?

那么我该如何处理以下字段:?

Class Car: IDisposable
 {

    private FontWeight bmw;

     public FontWeight Bmw
                {
                   bmw.Dispose(); <<<<<<<< Can access Dispose
                    get
                    { return bmw; }
                    set
                    { bmw= value;

                    }

                    public void Dispose(){
                      bmw.Dispose(); <<<< Cant access Dispose()
                    }                        
                }
            }

【问题讨论】:

  • 这会导致无限循环吗?在同一个方法中调用同一个方法..
  • 您发布的代码在很多方面都是无效的。您正试图在 属性内 声明 Dispose 方法一件事。
  • 并且还在 getter 和 setter 之外的属性内调用 dispose 方法 - @Xikinho90 - 不,这不会是一个无限循环,因为他只想在变量上调用 Dispose /跨度>
  • 我很清楚我只需要访问 public void Dispose() 中的 dispose 方法来处理 bmw。但它不会与出现在属性方法中的 dispose 方法形成对比

标签: c# .net memory .net-4.0


【解决方案1】:

如果那是你的代码,那么你里面有很多语法错误:

public FontWeight Bmw
{
    /// here shouldn't be any code, just getters and setters
    get { return bmw; }
    set { bmw = value; }

    /// you forgot to close the property here
} /// now it's closed

public void Dispose()
{
    bmw.Dispose(); /// now it will work
}

【讨论】:

  • 这个答案破坏了我首先发布问题的原因,因为它指出了我指定的问题。
  • FontWeight 是一个 windows 类
  • @user2708073,不清楚你想如何使用 dispose。另外,您为什么要尝试将您的对象置于其自身之中?.
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-04-03
  • 1970-01-01
  • 2012-02-07
  • 1970-01-01
  • 2021-03-13
  • 1970-01-01
  • 2015-03-28
相关资源
最近更新 更多