汎用クラスを作成するときにプライベートconstansをインタフェースセクションに移動する必要がある理由は何ですか?これは私のデザインを殺している、私は他人が私的でなければならない何かを見ることを望んでいない。E2506インタフェースセクションで宣言されたパラメータ化された型のメソッドはローカルシンボルを使用してはならない
unit Unit38;
interface
uses
Generics.Collections;
type
TSimpleClass<T> = class(TObject)
private
procedure DoSomethingInternal(const SomeString: string);
public
procedure DoSomething;
end;
implementation
const
MyString = 'some string'; //Why this must be public?
{ TSimpleClass<T> }
procedure TSimpleClass<T>.DoSomething;
begin
DoSomethingInternal(MyString); //Compiler error
end;
procedure TSimpleClass<T>.DoSomethingInternal(const SomeString: string);
begin
//-------
end;
end.
ありがとうございます。
デルファイ2009年にあなたのマージャンありがとうございません。 – Wodzu
[QualityCentralは現在シャットダウンされました](https://community.embarcadero.com/blogs/entry/quality-keeps-moving-forward)、これ以上 'qc.embarcadero.com'リンクにアクセスすることはできません。古いQCデータにアクセスする必要がある場合は、[QCScraper](http://www.uweraabe.de/Blog/2017/06/09/how-to-save-qualitycentral/)を参照してください。 –