为什么在Delphi中可以自行分配?
发布时间:2020-12-15 10:14:20 所属栏目:大数据 来源:网络整理
导读:GUI应用程序中的此代码编译并运行: procedure TForm1.Button1Click(Sender: TObject);begin Self := TForm1.Create(Owner);end; (用德尔福6和2009测试) 为什么是自写而不是只读? 在哪种情况下这可能是有用的? 编辑: 这是否也可能在Delphi棱镜? (我想是
GUI应用程序中的此代码编译并运行:
procedure TForm1.Button1Click(Sender: TObject); begin Self := TForm1.Create(Owner); end; (用德尔福6和2009测试) 为什么是自写而不是只读? 编辑: >这是否也可能在Delphi棱镜? (我想是的,见here) 更新: > python4delphi 解决方法
这没有那么糟糕。我只是在Delphi 2009中测试过,并且看起来,虽然Self参数不使用const语义,但是您似乎暗示它应该是它也不会使用var语义,所以你可以改变它想要在你的方法中,而不会丢失调用者对你的对象的引用。这将是一件非常糟糕的事情。
至于为什么,两个答案之一。要么是一个简单的监督,要么是Marco建议的:允许你将自己传递给一个var参数。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |