다시 책임의 한계 면책 조항 여전히 C# 및 OOP는 일반적으로 그래서 당신이 날 :)과 인내심 바랍니다 학습초급 : C#으로 수업을 확장했는데 잘못 했습니까?
나는 현재 기본적으로 관련된 속성의 목록을 포함 FileVersion
라는 클래스가있는 CMS 함께 일하고 파일 크기, 바이트 수, ID, 업로드 날짜, 최신 버전 등의 파일에 저장합니다.
의 목록은 고유 한 고유 ID가있는 File
내에 있습니다.
string URL = "/files/"+file.id.toString()+"/"+file.fileVersion.Last().filename;
, 그것은 : 당신은 CMS에서 특정 파일을 다운로드 할 때, URL은 다음과 같은 것을 사용하여 구축 나중에 사용하기 위해 다른 모든 FileVersion
정보와 함께 URL을 저장할 수 있어야합니다. 그래서 내가 결정하기로 한 것은 이라고하는 자신의 클래스를 만들어서 FileVersion
으로 확장하는 것입니다. 하지만 내가 여기 왜 복음으로, 즉 있다고하지 않습니다 -
public partial class DocumentVersion : FileVersion
{
public DocumentVersion() : base() { }
public string link;
}
가 지금은주의해야한다 내가 여기에 인터페이스를 구현하지 않아도 나타납니다 :이처럼 보이는 것입니다.
그러나 나는 DocumentVersion
과 같이 나의 FileVersion
캐스팅하려고하면
DocumentVersion dv = ((DocumentVersion)fileversion);
나는 다음과 같은 예외가 얻을 :
유형 의 개체를 캐스팅 할 수 없습니다 'Foo.CMS.FileVersion을 '을 입력하여 'CoA.DocumentVersion '을 입력하십시오.
내가 원래의 위치에서 다른 네임 스페이스로 클래스를 확장하려고했기 때문에 내 오해가 생길 수있다.하지만 내가 말한 것처럼 OOP는 나에게 비교적 새로운 것이므로 잘못 될 수있다.
미리 도움을 주셔서 감사합니다. 이 커뮤니티는 매우 귀중했습니다. 나는 한 번 더 숙련 된 사람이라면 다시 돌려 줄 수 있기를 바랍니다. :)
'FileVersion'에 대한 클래스 선언을 포함하도록 질문을 편집 할 수 있습니까? 당신은 그것을 확장 할 수 없을 수도 있습니다. –
나는 러스를 좋아할 것이지만 불행히도'FileVersion'에 대한 클래스 선언이 소스가없는 dll에 있기 때문에 나는 할 수 없습니다. 일반적으로 클래스가 확장 가능한지 여부를 어떻게 알 수 있습니까? –
대단히 감사합니다. 결국 나는 Brian 's를 받아 들였습니다. 왜냐하면 그의 것이 가장 완벽하고 스레드가 끝나는 방식으로 내가 필요한 모든 것을 배웠기 때문입니다. 다시 한 번, 모두에게 감사합니다. –