gpt4 book ai didi

C# 我可以取消另一个类中的对象吗

转载 作者:行者123 更新时间:2023-11-30 13:11:01 24 4
gpt4 key购买 nike

我有一个在一个类中生成的对象

public class CreatingClass
{
public T CreateObject<T>(Dictionary<string, object> parameters) where T : IMyInterface, new()
{
....
}

public void DestroyObject(IMyInterface objectToDestroy)
{
....
}
}

我从客户端类调用此函数,然后有时需要通过创建类通过我的应用程序使它无效。

我可以做类似下面的事情吗

public class ClientClass
{
MyObject obj;
CreatingClass creatingClass = new CreatingClass();

private void AFunctionToCreateMyClass()
{
obj = creatingClass.CreateObject<MyClass>(parameters);
}

private void AFunctionToDeleteMyObject()
{
CreatingClass.DestroyObject(obj);
Assert.IsNull(obj);//Doesn't fail
}
}

我曾尝试过 objectToDestroy = null,但认为它行不通(而且没有成功)

最佳答案

请注意,您实际上无法销毁对象;您受垃圾收集规则的约束。按下时,您可以检查 IDisposable 并调用 Dispose(),

您可以使用提供的ref 示例,但我不确定它是否有意义;使用“obj = null;”清除字段更简单。

ref 的用法可能会令人困惑,因为它适用于变量 - 即如果您这样做:

var tmp = obj;
DestroyObject(ref tmp);

那么 obj 仍将是原始值。除非您有充分的理由,否则我不推荐使用 ref 方法。

关于C# 我可以取消另一个类中的对象吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/419878/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com