C# 웹 응용 프로그램에서 많이 사용하는 색인 된 속성을 가진 Delphi Prism 클래스가 여러 개 있습니다 (큰 Delphi Win32 시스템을 ASP.Net). 내 문제는 그들이 C# 그들의 색인의 기본 속성이 아닌 경우 색인 된 속성을 볼 수 없다는 것입니다. 어쩌면 내가 뭔가 잘못하고있는 걸지도 모르지만 나는 완전히 잃어 버렸어.속성이 기본값이 아닐 때 C#에서 Delphi Prism 인덱스 속성을 볼 수있게 만드는 방법
이 질문은 버그 보고서와 비슷하지만 버그를보고하기 전에 다른 사람이 해결 방법을 알고 있는지 알아야합니다.
나는 경우 같은 클래스 :
TMyClass = public class
private
...
method get_IndexedBool(index: Integer): boolean;
method set_IndexedBool(index: Integer; value: boolean);
public
property IndexedBool[index: Integer]: boolean
read get_IndexedBool
write set_IndexedBool; // IndexedBool is not the default property anymore
end;
: 타입을 TMyClass는 다음과 같이 정의 된 경우,
var myObj = new TMyClass();
myObj[0] = true;
그러나 :이 같은 C#에서이 클래스를 사용할 수 있습니다
TMyClass = public class
private
...
method get_IndexedBool(index: Integer): boolean;
method set_IndexedBool(index: Integer; value: boolean);
public
property IndexedBool[index: Integer]: boolean
read get_IndexedBool
write set_IndexedBool; default; // make IndexedBool the default property
end;
그런 다음 IndexedBool 속성이 C#에서 보이지 않게됩니다. 내가 뭔가를 누락하는 경우
var myObj = new TMyClass();
myObj.set_IndexedBool(0, true);
는 나도 몰라,하지만 난 속성 선언에 기본을 제거하면 나는 IndexedBool 속성을 볼 수 없습니다 : 나는 그것을 사용할 수있는 유일한 방법은이 일을한다 . 게다가, 나는 클래스 인스턴스의 private 메소드에 직접 액세스하는 것이 잘못되었다고 확신한다.
아이디어가 있으십니까?
예, 저는 이것을 사용하여 응용 프로그램에서 사용되는 일부 C# 클래스에서 색인화 된 속성을 구현하지만, 문제는 내 Delphi Prism 클래스와 관련이 있습니다. 델파이 프리즘 (Delphi Prism) 제한이라고 생각했지만 VB에서 작동하므로 C#이 비난의 대상이라고 생각합니다. – Arcturus
예, Delphi Prism 제한이 아닌 C# 제한입니다. Prism 지원보다는 C# 지원을 해킹해야합니다. – jamiei
반영 할 답변을 업데이트했습니다. – jamiei