やじゅ@アプリケーション・ラボ わんくま支局

目次

Blog 利用状況

ニュース

プロフィール

MSMVP

Visual Basic 2015以降の新機能 その5

これは、Visual Basic Advent Calendar 2014の12/22日の記事。

VB2015(VB14.0)の新機能として下記9項目を挙げたのですが、幾つかの機能については次のVB15.0以降になるようです。
やはり、この時点でVisual Studio 2015 Preview版に実装されていないのは持ち越しのようです。
.NET Compiler Platform ("Roslyn") のサイトにて「Added」の項目は追加されています。

 

【VB2015(VB14.0)の新機能】参照:VBの新しいステートメントUpcoming Features in Visual Basic
1.Select Caseステートメントの拡張 → 次バージョンにて実装予定
2.読み取り専用の自動実装プロパティー
3.複数行にまたがった文字リテラル
4.yyyy-MM-dd型の日付リテラル
5.バイナリーリテラル → 次バージョンにて実装予定
6.数値区切りリテラル → 次バージョンにて実装予定
7.複数行にまたがるステートメントに対するコメント
8.バグ修正と小さな変更
  1.XMLドキュメントコメントの修正
  2.TypeOfステートメントでIsNot演算子の利用
  3.パーシャルモジュールとパーシャルインターフェイスのサポート
  4.#Reagion  #End Regionがメソッド内部で定義可能
  5.インターフェイスのReadOnly / WriteOnlyプロパティーを自動実装プロパティーで実装可能
  6.Overridesキーワードがある場合のOverloadsキーワードの省略を可能に
  7.属性の引数でボクシングの変換

9.C#で計画されたのをVBで検討中
10.その他


8.1.XMLドキュメントコメントの修正について説明します。
この機能はVisual Studio 2015 Preview版で確認できました。

VBではXML形式のコメントにジェネリック型でのリンク(see cref)が出来なかったのですが、出来るようになりました。

''' <summary> ''' A great fancy class. ''' </summary> ''' <typeparam name="T">Generic stuff ....</typeparam> ''' <see cref="FancyClass(Of T)" /> Public Class FancyClass(Of T) ''' <summary> ''' A fancy method that do fancy operation. ''' </summary> ''' <param name="value">The value.</param> ''' <returns></returns> Public Function FancyMethod(value As T) As String Return "something fancy" End Function End Class
8.2.TypeOfステートメントでIsNot演算子の利用について説明します。
この機能はVisual Studio 2015 Preview版で確認できました。
VB2005でIsNotが採用されたのですが、TypeOf時に使えなかったのが使えるようになりました。
If TypeOf sender IsNot Button Then
8.3.パーシャルモジュールとパーシャルインターフェイスのサポートについて説明します。
この機能はVisual Studio 2015 Preview版で確認できました。

PartialはVB2005で追加された「複数のファイルに分散して定義できる」機能です。
クラスのみ対応でしたが、モジュールとインターフェイスもサポートするようになりました。
Partial Module DatabaseExtensions
Partial Interface IBindable
8.4.#Reagion #End Regionがメソッド内部で定義可能について説明します。
この機能はVisual Studio 2015 Preview版で確認できました。

これまで最低でもメソッド単位でしか使えなかったのが、メソッド内部でも使えるようになりました。
また下記のように別メソッドを含めても使えます。
Function Range(min As Integer, max As Integer) As IEnumerable(Of Integer)
        If min > max Then Throw New ArgumentException
#Region "validation"
        Return Helper(min, max)
    End Function

    Private Iterator Function Helper(min As Integer, max As Integer) As IEnumerable(Of Integer)
#End Region
        For i = min To max
            Yield i
        Next
    End Function

8.5.インターフェイスのReadOnly / WriteOnlyプロパティーを自動実装プロパティーで実装可能について説明します。
この機能はVisual Studio 2015 Preview版で確認できました。
ReadOnly Propertyが追加されたため、インターフェイスの実装(Implements)にも適用しています。
ちなみClass C側のPプロパティはReadOnlyにはなりません。
Interface I ReadOnly Property P As Integer End Interface Class C Implements I Property P As Integer Implements I.P End Class


8.6.Overridesキーワードがある場合のOverloadsキーワードの省略を可能について説明します。
この機能の説明があっているのか微妙です。VB2013でもエラーにならなかったもので。

Derivedクラスで「Overrides Overloads」で書いていたのを、継承しているので推測して
Overloadsキーワードの省略できるようにしますってことだと思います。

Public Class Base Public Overridable Function Delete(code As Integer) As Boolean Return True End Function Public Overridable Function Delete(code As Integer, id As Integer) As Boolean Return True End Function End Class Public Class Derived Inherits Base Public Overrides Function Delete(code As Integer) As Boolean Return MyBase.Delete(code) End Function Public Overrides Function Delete(code As Integer, id As Integer) As Boolean Return MyBase.Delete(code) End Function End Class
8.7.属性の引数でボクシングの変換について説明します。
この機能はVisual Studio 2015 Preview版で確認できました。
プロパティの既定値を指定する際に、CObjによる変換が可能になります。
ちなみにCIntなどはVB2013でも使えました。


Imports
System.ComponentModel <DefaultValue(CObj(1))> Public Property MyValue() As Object = MyValue

投稿日時 : 2014年12月22日 2:50

コメントを追加

No comments posted yet.
タイトル  
名前  
URL
コメント