作者deuter (Harold)
看板C_Sharp
标题Re: [问题] managed C++的问题
时间Wed Feb 7 12:10:31 2007
在 C# 中把一个 local 变数设成 null 是没有意义的,
所以你其实不需要这麽做, GC 会自己判断物件还有没有被 reference
不过如果是一个 static 变数, 把它设成 null 就可能有作用了,
那表示你以後都不会用到这个物件了所以可以 GC
C++/CLI 用 nullptr,
MyClass ^obj;
if (obj == nullptr) ...
※ 引述《euleramon (风林火山)》之铭言:
: 最近因为需用到一些C++的library,不得已用managed C++改写程式,
: 开发平台是.net2005,
: 感觉跟以前C#很像,很多framework都还是可以用,但语法差很多,
: 大致上程式还算好改,适应了一些像 ^, ::, %, gcnew,..等一些怪怪的语法..
: 以前C#的 keyword 像是 partial, is 等 不再适用。
: 另外感觉IDE对C#的智慧校正判断比managed C++来得多。
: ===============以上都是废话啦!============
: 想问一下版上高手,
: 以前我在C#上如果某些reference object不再需要的话,大部分会把它们设成null,
: 交给gc处理,
: 但在managed C++没有null这个keyword,而NULL是传统C++的语法不行指定给它
: ,请问在managed C++下该怎麽将不要的reference object设定成"丢掉"交给gc处理?
: 以前C#用debug模式看它的reference值没指定的会是null,但在managed C++
: 没指定看它是值会变成<undefined value>。 XD"
: 降子我以前在C#写的判断 if( object == null ) 换到C++该怎麽写??
: 虽然说我用一种比较tricky的方式改写也行的通,但总觉得不是正常的写法。
: (应该有人知道这方法 XD")
: 麻烦帮我解答一下,感谢。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 67.161.17.127
1F:推 euleramon:这篇也是推一下 02/07 15:00