VB.NET: Что такое статический T (C#) в VB.NET?

Один из способов сделать это - создать прозрачную таблицу и добавить изображения в ячейки:

from docx import Document

document = Document()
tables = document.tables
table = document.add_table(rows=1, cols=2)
row_cells = table.add_row().cells

for i, image in enumerate(['image1.jpg', 'image2.jpg']):
    paragraph = row_cells[i].paragraphs[0]
    run = paragraph.add_run()
    run.add_picture(image)
document.save('doc.docx')

Вот что вы получите, например:

enter image description here [ 112]

5
задан Peter Mortensen 29 June 2017 в 21:35
поделиться

6 ответов

Эквивалент static в VB в Shared. Общие методы обычно помещаются в классы Помощника, потому что они не требуют, чтобы экземпляр класса работал.

Тип T указывает, что это - общий метод (это - новая возможность в VB 9 и C# 3). Общий метод эффективно берет тип в качестве аргумента или возвращает универсальный тип.

Дополнительные методы являются также новыми в  VB 9/C# 3. Они позволяют Вам расширять существующий тип путем добавления методов. Все, в чем Вы нуждаетесь, является Общим методом, который доступен в том же пространстве имен как Ваш код, и в VB код должен быть в модуле, не нормальном классе.

Модуль является классом, который нельзя инстанцировать, и (поэтому) только совместно использовал методы. Это объявляется с ключевым словом Модуля вместо ключевого слова класса. Вот Ваш код в VB.

(Также для тех, которые знают то, что идет "под покрытиями" на странно установку типа значения к Nothing действительно компилирует в VB и поддерживаемый способ получить значение по умолчанию типа значения).

Imports System.Runtime.CompilerServices
<Extension()> _
Public Shared Function GetValueOrDefault(Of T)(ByVal reader As IDataReader, ByVal columnName As String) As T
Dim returnValue As T = Nothing

End Function
11
ответ дан 18 December 2019 в 14:52
поделиться

Он создает дополнительный метод. В C# это сделано путем создания статического метода (Совместно использованный в Visual Basic).

Механизм для создания дополнительных методов в Visual Basic, кажется, очень отличается, чем, как Вы делаете это в C#. Вы, вероятно, захотите считать запись MSDN о дополнительных методах, здесь: http://msdn.microsoft.com/en-us/library/bb384936.aspx

1
ответ дан 18 December 2019 в 14:52
поделиться

Это - то, на что метод был бы похож в VB:

Imports System.Runtime.CompilerServices 

<Extension()> _
Public Shared Function GetValueOrDefault(Of T)(ByVal reader As IDataReader, ByVal columnName As String) as T
    Dim returnvalue As T = Nothing
End Function

Я не уверен, как сделать значение по умолчанию (T) в VB, таким образом, я пропустил его.

1
ответ дан 18 December 2019 в 14:52
поделиться

Статическое ключевое слово C# совпадает с Общим ключевым словом VB.

0
ответ дан 18 December 2019 в 14:52
поделиться

T в Вашем примере параметр типа в Вашем общем методе.

В VB:

Public Function GetValueOrDefault(Of T)(ByVal reader as IDataReader, ByVal columnName as string) as T

Средства, что при вызове метода Вы предоставляете параметр типа (говорящий, чем тип T будет для вызова к методу),

Не уверенный в синтаксисе VB для создания дополнительного метода, все же. (Это - то, что обозначает "это" ключевое слово на Вашем первом параметре.)

0
ответ дан 18 December 2019 в 14:52
поделиться

То, на что Вы смотрите, не является "статическим T", но двумя отдельными частями.

  • общественность обозначает метод как публично видимый.
  • статичный обозначает метод как статичный. Это означает, что работает за классом, не за экземпляром.
  • T - тип возврата.

Больше информации о статической функции.

Статические функции в VB.NET, знают как общие функции.

Больше информации об общих функциях.

0
ответ дан 18 December 2019 в 14:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: