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

目次

Blog 利用状況

ニュース

プロフィール

MSMVP

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

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

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で検討中
  1.パラメーターなし構造体のコンストラクタ
  2.Dictonaryの初期化方法の追加(! operatorの追加) → 次バージョンにて実装予定
  3.暗黙的に定義される参照引数(Output キーワードの追加) → 次バージョンにて実装予定
  4.Catchブロック内でのAwaitキーワードのサポート → 次バージョンにて実装予定
10.その他
  1.Null条件演算子
  2.#pragmaの追加
  3.スマート名前解決


 
9.1.パラメーターなし構造体のコンストラクタについて説明します。
この機能はVisual Studio 2015 Preview版で確認できました。

引数が無いコンストラクタ(New)を作成することが出来ます。
また、ReadOnly Propertyを使ってC#のように英大小文字の組合せで値をセット出来ます。

Public Structure Point
    ReadOnly Property X As Integer
    ReadOnly Property Y As Integer
    Sub New()
        Me.X = 0
        Me.Y = 0
    End Sub
    Sub New(ByVal x As Integer, ByVal y As Integer)
        Me.X = x
        Me.Y = y
    End Sub
End Structure


9.2.Dictonaryの初期化方法の追加(! operatorの追加)について説明します。
この機能はVisual Studio 2015 Preview版で確認できませんでした。

“!”演算子を使って初期化出来るようにしたかったと思われます。
Dim customer = New JsonData With { !First = "Lucian", ' .Item("First") = "Lucian" !Last = "Wischik" ' .Item("Last") = "Wischik" }


! 演算子 (bang operator | 感嘆符演算子) は、Accessでは使ってた記憶がありますが、
VB.NETではすっかり忘れていました。
Default Public Property Itemとすると、ディクショナリ メンバ アクセス式 E!I は、式 E.D("I") に変換されます。

Dim x As New Dictionary(Of String, String)
x.Item("Foo") = "Bar"
x!Foo = "Bar"

Dim a = xx!Foo
Dim b = xx("Foo")
Dim c = xx.Item("Foo")

上記はVB.NETに以前からある機能です。この! 演算子の応用範囲を広げたいと思ったと思われます。
Dim x = New CC With { !name = “hello”}


9.3.暗黙的に定義される参照引数(Output キーワードの追加)について説明します。
この機能はVisual Studio 2015 Preview版で確認できませんでした。
C#のOut修復子をVBでも採用したかったと思われる。 C#のrefとoutの違い
(メソッド内でoutパラメータの値を使用することができず、必ずoutパラメータには新しい値を代入しなければなりません。)
' Callsite:
If Integer.TryParse(s, Output x) Then

' Declaration-site:
Function TryParse(s As String, Output x As Integer) As Boolean


9.4.Catchブロック内でのAwaitキーワードのサポートについて説明します。
この機能はVisual Studio 2015 Preview版で確認できませんでした。

C#のみサポートされて、VBはサポートされませんでした。 

Dim res As Resource = Nothing
Try
    res = Await Resource.OpenAsync(...)   ' You could do this.
    ...
Catch ex As ResourceException
    Await Resource.LogAsync(res, e)   ' Now you can do this ...
Finally
    If res IsNot Nothing Then Await res.CloseAsync() ' ... and this.
End Try



10.1.Null条件演算子
この機能はVisual Studio 2015 Preview版で確認できました。

' 従来の書き方
Private Function ToLower_OldStyle(s As String) As String
    If (s Is Nothing) Then
        Return Nothing
    End If
    Return s.ToLower()
End Function

' Null条件演算子「?」を使った書き方
Private Function ToLower_NewStyle(s As String) As String
    Return s?.ToLower()
End Function


10.2.#pragmaの追加
この機能はVisual Studio 2015 Preview版で確認できました。
コンパイル時のワーニング出力を抑制します。
記述としては#pragmaは使わないで、#Disableと#Enableとなります。

#Disable Warning BC40008
#Enable Warning BC40008


10.3.スマート名前解決
この機能はVisual Studio 2015 Preview版で確認できました。

WPFのThreadingには、「System.Threading」と「System.Windows.Threading」の2種類があります。
WPFにした上でThreadingと入力後「.」を入力するとVB2015ではインテリセンスが表示されるようになっていますが、VB2013では何も表示されませんでした。ただこの機能の説明の英文を訳すかぎりでは両方表示されると書かれていたのですが、表示されたのは「System.Threading」のみでした。


【あとがき】
追記が遅れました。調べながら書いていきましたが、私の力不足もあり説明に誤りがあるかも知れません。
1つ1つ詳細に説明していければもっと良かったのですが、簡易的な説明くらいに留まってしまいました。
今のところ、日本の他ブログでも1つ1つを説明しているところは無いと思われるので、先行説明としては多少とも役に立ったかなと思います。

【追記】2015/12/20
見逃していた新機能をhilaponさんが書いてくれています。
nameof 演算子
文字列の中に式や変数を埋め込む(文字列補完)$を使用

投稿日時 : 2014年12月25日 23:53

コメントを追加

# generic for doxycycline https://doxycyline1st.com/
doxycycline mono 2022/02/26 9:17 Jusidkid

generic for doxycycline https://doxycyline1st.com/
doxycycline mono

# generic clomid https://clomiden.fun/ 2022/04/12 12:32 Clomids

generic clomid https://clomiden.fun/

# prednisone 2.5 mg http://prednisoneen.store/ 2022/04/16 22:27 Prednisone

prednisone 2.5 mg http://prednisoneen.store/

# clomid without prescription https://clomidonline.icu/ 2022/07/08 13:13 Clomidj

clomid without prescription https://clomidonline.icu/

# antibacterial https://allpharm.store/ 2022/07/21 21:42 AllPharm

antibacterial https://allpharm.store/

# ivermectin for goat mites https://stromectolbestprice.com/ 2022/07/30 0:07 BestPrice

ivermectin for goat mites https://stromectolbestprice.com/

# ロレックス エクスプローラー ビンテージ 2022/09/01 3:36 kkezcbvnw@hotmail.co.jp

【祝開店!大放出セール開催中】
あなたは自由船積みを楽しむことができます
新品入荷大特価!限定SALE!
激安専門オンラインストア
激安 おすすめSALE!
『2022年春夏新作』5☆大好評!
SALE賛発売!
【正規品!】☆安心の全品国内発送!
人気【新品】店里最受迎!
業界最高峰!全国一律送料無料!
最良の取引店へようこそ
お急ぎ便利用で当日、翌日にお届け。
【送料無料市場】今季★大特恵
『上品な』激安本物
オフ75%安いが貯まる!
ロレックス エクスプローラー ビンテージ https://www.kopijp.com/product/detail.aspx-id=5607.htm

# best ed pills online https://ed-pills.xyz/
top ed pills 2022/09/16 7:13 EdPills

best ed pills online https://ed-pills.xyz/
top ed pills

# mens erection pills https://ed-pills.xyz/
ed treatment review 2022/09/17 7:27 EdPills

mens erection pills https://ed-pills.xyz/
ed treatment review

# pills erectile dysfunction https://ed-pills.xyz/
online ed medications 2022/09/17 19:33 EdPills

pills erectile dysfunction https://ed-pills.xyz/
online ed medications

#  https://clomidforsale.site/ 2022/11/13 14:07 ForSale

https://clomidforsale.site/

# where can i get prednisone over the counter https://prednisonepills.site/
prednisone prescription drug 2022/11/30 0:37 Prednisone

where can i get prednisone over the counter https://prednisonepills.site/
prednisone prescription drug

# what is the best ed pill https://cheapestedpills.com/
ed pills cheap 2022/12/10 16:16 CheapPills

what is the best ed pill https://cheapestedpills.com/
ed pills cheap

# Read here. Everything what you want to know about pills.
https://edonlinefast.com
Get here. All trends of medicament. 2023/02/18 0:39 EdOnline

Read here. Everything what you want to know about pills.
https://edonlinefast.com
Get here. All trends of medicament.

# Read now. Long-Term Effects.
https://edonlinefast.com
earch our drug database. Read here. 2023/02/18 15:12 EdOnline

Read now. Long-Term Effects.
https://edonlinefast.com
earch our drug database. Read here.

# earch our drug database. Comprehensive side effect and adverse reaction information.
https://canadianfast.com/
Best and news about drug. Best and news about drug. 2023/02/19 7:46 CanadaBest

earch our drug database. Comprehensive side effect and adverse reaction information.
https://canadianfast.com/
Best and news about drug. Best and news about drug.

# online meds for ed - https://cheapdr.top/# 2023/04/03 2:18 Dikolipo

online meds for ed - https://cheapdr.top/#

# price of doxycycline - https://doxycyclinesale.pro/# 2023/04/21 17:23 Doxycycline

price of doxycycline - https://doxycyclinesale.pro/#

# prednisone 5mg over the counter - https://prednisonesale.pro/# 2023/04/22 4:40 Prednisone

prednisone 5mg over the counter - https://prednisonesale.pro/#

# buy cytotec over the counter - https://cytotecsale.pro/# 2023/04/29 4:34 Cytotec

buy cytotec over the counter - https://cytotecsale.pro/#

# canadian drug store coupon https://pillswithoutprescription.pro/# 2023/05/15 3:23 PillsPresc

canadian drug store coupon https://pillswithoutprescription.pro/#

# ed pills for sale: https://edpills.pro/# 2023/05/15 15:24 EdPillsPro

ed pills for sale: https://edpills.pro/#

# prednisone 30 mg https://prednisonepills.pro/# - prednisone 10mg cost 2023/06/04 21:24 Prednisone

prednisone 30 mg https://prednisonepills.pro/# - prednisone 10mg cost

# buy ed pills online https://edpills.ink/# - erection pills 2023/07/27 0:45 EdPills

buy ed pills online https://edpills.ink/# - erection pills

# versandapotheke deutschland 2023/09/26 13:43 Williamreomo

https://onlineapotheke.tech/# versandapotheke deutschland
internet apotheke

# online apotheke deutschland 2023/09/27 2:05 Williamreomo

https://onlineapotheke.tech/# online apotheke gГ?nstig
online apotheke preisvergleich

# п»їonline apotheke 2023/09/27 5:12 Williamreomo

http://onlineapotheke.tech/# versandapotheke deutschland
п»?online apotheke

# п»їonline apotheke 2023/09/27 8:10 Williamreomo

http://onlineapotheke.tech/# online apotheke versandkostenfrei
online apotheke preisvergleich

# online apotheke gГјnstig 2023/09/27 9:24 Williamreomo

http://onlineapotheke.tech/# versandapotheke versandkostenfrei
versandapotheke

# gГјnstige online apotheke 2023/09/27 11:51 Williamreomo

http://onlineapotheke.tech/# versandapotheke versandkostenfrei
versandapotheke deutschland

# acquisto farmaci con ricetta 2023/09/27 20:49 Rickeyrof

acheter sildenafil 100mg sans ordonnance

# farmacia online 2023/09/27 21:06 Rickeyrof

acheter sildenafil 100mg sans ordonnance

# farmacia online miglior prezzo 2023/09/27 21:22 Rickeyrof

acheter sildenafil 100mg sans ordonnance

# impotence pills https://edpillsotc.store/# - cures for ed 2023/10/08 1:03 EdPills

impotence pills https://edpillsotc.store/# - cures for ed

# pharmacies in canada online 2023/10/17 4:39 Dannyhealm

Leading with integrity on the international front. https://mexicanpharmonline.com/# mexican border pharmacies shipping to usa

# licensed canadian pharmacies 2023/10/17 9:06 Dannyhealm

A true champion for patients around the world. http://mexicanpharmonline.shop/# mexican rx online

# canada rx prices 2023/10/17 10:14 Dannyhealm

They offer world-class service, bar none. http://mexicanpharmonline.shop/# mexican pharmaceuticals online

# no perscription required 2023/10/17 23:16 Dannyhealm

Their commitment to global excellence is unwavering. https://mexicanpharmonline.shop/# mexican pharmaceuticals online

# canadian and international prescription service 2023/10/18 13:41 Dannyhealm

Read information now. https://mexicanpharmonline.com/# mexican border pharmacies shipping to usa

# mexico drug stores online 2023/10/18 15:25 Dannyhealm

Efficient, effective, and always eager to assist. https://mexicanpharmonline.shop/# mexico drug stores pharmacies

# online mexican pharmacies 2023/10/18 16:36 Dannyhealm

Been relying on them for years, and they never disappoint. http://mexicanpharmonline.shop/# pharmacies in mexico that ship to usa

# canadian pharmecy 2023/10/19 4:05 Dannyhealm

Their international health forums provide crucial insights. http://mexicanpharmonline.com/# reputable mexican pharmacies online

# doxycycline 100 mg https://doxycycline.forum/ where to purchase doxycycline 2023/11/25 13:08 Doxycycline

doxycycline 100 mg https://doxycycline.forum/ where to purchase doxycycline

# farmacie online sicure https://farmaciait.pro/ farmacia online miglior prezzo 2023/12/04 10:08 Farmacia

farmacie online sicure https://farmaciait.pro/ farmacia online miglior prezzo

# otc ed pills https://edpills.tech/# ed medications 2023/12/23 8:05 EdPills

otc ed pills https://edpills.tech/# ed medications

タイトル
名前
URL
コメント