문제

선언 된 VB.NET 클래스 (내가 쓰지 않은)를보고 있습니다. MustInherit (abstract C#에서, 나는 믿습니다) 세 가지 방법이 있는데, 모두 정의됩니다. Shared (static C#). 클래스에는 속성이나 필드가 없습니다. 세 가지 방법 만 있습니다. OO 관점에서, 이것이 의미가 있습니까?

내 생각은 아니에요. 왜냐하면 그것을 만들어 내기 때문입니다 MustInherit, 당신은 본질적 으로이 클래스의 인스턴스를 만들 수 없다고 말하고 있습니다. 파생 수업. 그러나 모든 방법이 공유되므로 실제로는 부모 클래스의 인스턴스를 만들지 않을 것입니다. MustInherit 좋지 않습니다. 당신도 할 수도 있습니다 ~ 아니다 표시하십시오 MustInherit 그리고 원할 때마다 상속합니다.

이런 식으로 수업을 만드는 상황이 의미가 있습니까?

도움이 되었습니까?

해결책

다른 사람들이 말했듯이, 그들은 C# 정적 클래스를 정말로 원했던 것처럼 들립니다. VB의 "정적"과 동등한 것은 "공유"이지만 VB에서 "공유 된"클래스를 표시 할 수는 없습니다. 차이점은 누군가 가이 수업에서 상속 한 다음 인스턴스를 만들 수 있다는 것입니다. C# 정적 클래스가 밀봉되어 있습니다.

그들 ~해야 한다 사용하는 것입니다 Module. VB Module C# static 클래스는 사실상 동일합니다. 멤버는 인스턴스가 아닌 유형과 연관되어 있으며 상속 할 수 없습니다.

다른 팁

OO 관점에서 볼 때 이것은 많은 의미가 없습니다.

그러나 VB는 C#과 같이 공유대로 클래스를 플래그하는 방법이 없습니다. C#에서는이 클래스를 static class - Mustinherit은 기본적으로 정적 클래스이더라도 사람들이 인스턴스를 만들지 못하게하려고 추가되었을 가능성이 높습니다.

C#에서 클래스는 정적 (= 공유)으로 선언 될 수 있으며 VB.NET은이를 허용하지 않는다고 생각합니다. 해결 방법으로 인스턴스화되지 않도록 작업장으로 표시됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top