能否使TProc<T>允許aValue不僅被讀取,而且可以在TProc匿名程序中被編輯?
var xProc2: TProc< Integer>;
xProc2 := procedure(aValue: Integer)
begin
aValue := 5;
end。
Delphi 10.4.x
uj5u.com熱心網友回復:
如果代碼正好需要TProc<Integer>;,那么就不行。你可以改變值型引數的本地拷貝并在程序中使用它,但外部代碼不會看到變化。
如果可能的話,你可以使用PInteger型別的指標引數,并改變aValue^。
你也可以用var引數定義自己的通用型別
type
TProcvar<T> = reference to procedure (var Arg1: T);
并應用它
var xProc2: TProcVar< Integer>;
xProc2 := procedure(var aValue: Integer)
begin
aValue := 5;
end。
但我認為最可靠的方法是--使用函式 TFunc<T,TResult>(或者TFunc<TResult>如果你不使用輸入引數)
var xFunc: TFunc<Integer, Integer>。
xfunc := function(aValue: Integer): Integer
begin
結果 := aValue 5。
end。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/316509.html
標籤:
上一篇:何時選擇哪種型別的德爾福裝置?
下一篇:如何修復npm丟失的腳本
