2015-05-27 2 views
2

Представьте меня класс как это:VB.net анонимный класс с наследованием

Class A 
    Public Function Some(str As String) As String 
     Return "Some " + str 
    End Function 
End Class 

Я потребляющий такой код:

Public Sub Foo() 
    Dim thisWorks = New With {.prop = "thing"} 
    Dim thisDoesntWork = New inherits A with { .prop = Some("thing") } 
End Sub 

Я пытаюсь создать анонимный тип с наследованием так что я могу использовать методы внутри. Это возможно ?

Use case: Я пытаюсь создать класс, который имеет такие методы, как Select, From и т. Д., Которые помогли бы в создании более чистого запроса. В коде потребления я бы просто создал анонимный тип, наследующий от класса, и использовал методы.

+0

Будет ли что-то подобное в [это сообщение] (http://stackoverflow.com/questions/30487866/ В.Б-нетто-родовой-переменный из неизвестного типа)? – OneFineDay

ответ

1

То, что вы хотите, невозможно (по крайней мере, не так, как вы его описываете).

Из того, что я думаю, я понял; вы должны попытаться подражать тому, что было Donne для Linq; интерфейс (например, IEnumerable) со всем желаемым способом (или, может быть, абстрактный класс bu, который не позволяет вам наследовать что-то еще) + что-то еще (возможно, модуль, если вы хотите, чтобы они были как метод расширения), определяющие Select и т. д., действующие на интерфейс.

С этого момента вы можете создать классы, которые реализуют интерфейс и использовать свой обычай Выберите и т.д. на них

Смежные вопросы