掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
参照ユニットの同名関数呼び出し切り替え (ID:43797)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
>自作 Length のパラメータが System.Length と異なるならば >Overload すれば共存可能 なので、型を認識させればとりあえずはコンパイルできるようですが、String以外を一本の関数にまとめる方法は分かりません。 手間をかけてLengthを自作するより、関数名の変更を推奨します... ちなみに、下記サンプルは、'再宣言された識別子'の警告(XE2の場合)が出ますが、 TArray<型>を手抜きせずに宣言すれば警告は消えると思います。 var str1: String; iarr: TArray<Integer>; farr: TArray<Double>; function Length(S: String): SmallInt; overload; begin Result := System.Length(S)*2; end; function Length(Arr: TArray<Integer>): SmallInt; overload; begin Result := System.Length(Arr); end; function Length(Arr: TArray<Double>): SmallInt; overload; begin Result := System.Length(Arr); end; begin str1 := 'hoge'; SetLength(iarr, 3); SetLength(farr, 2); ShowMessage(Format('%d, %d, %d', [Length(str1), Length(iarr), Length(farr)])); // '8, 3, 2' SetLength(iarr, 0); SetLength(farr, 0); end.
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.