C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: VB.Net の型推論機構について


(過去ログ 141 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■82760 / inTopicNo.1)  VB.Net の型推論機構について
  
□投稿者/ typesafer (1回)-(2017/02/02(Thu) 11:38:00)

分類:[VB.NET/VB2005 以降] 

Visual Basic 2015 00325-60003-44310-AA674

インテリセンス機能の提示する型表記において、定義変数から推論されるべき型が表示されません。
仕様なのでしょうか?

`PM> Install-Package System.Collections.Immutable`

```
Option Strict On
Option Explicit On

Imports ElemId = System.Int32
Imports NodeId = System.Int32
Imports System.Collections.Immutable

Module test
    Dim xs As List(Of NodeId) = New List(Of NodeId)
    '   ^ xs infered List(Of ElemId), expected List(Of NodeId)
    Dim ys As ImmutableList(Of NodeId) = ImmutableList.Create(Of NodeId)
    '   ^ ys infered ImmutableList(Of ElemId), expected List(Of NodeId)
End Module
```

引用返信 編集キー/
■82762 / inTopicNo.2)  Re[1]: VB.Net の型推論機構について
□投稿者/ shu (957回)-(2017/02/02(Thu) 12:33:47)
No82760 (typesafer さん) に返信

どのように記述したときにどんな警告、エラーが表示されるのでしょうか?
引用返信 編集キー/
■82764 / inTopicNo.3)  Re[1]: VB.Net の型推論機構について
□投稿者/ 魔界の仮面弁士 (1105回)-(2017/02/02(Thu) 14:07:36)
No82760 (typesafer さん) に返信
> Visual Basic 2015

RTM でしょうか?


> インテリセンス機能の提示する型表記において、定義変数から推論されるべき型が表示されません。
> 仕様なのでしょうか?

手元の環境で試してみました。


Visual Studio 2012 Update 4 / .NET Framework 4.5
前者『Private xs As System.Collections.Generic.List(Of Integer)』
後者『Private xy As System.Collections.Immutable.ImmutableList(Of Integer)』


Visual Studio 2015 Update 3 / .NET Framework 4.6.1
前者『(フィールド)test.xs As List(Of ElemId)』
後者『(フィールド)test.ys As ImmutableList(Of ElemId)』
引用返信 編集キー/
■82768 / inTopicNo.4)  Re[2]: VB.Net の型推論機構について
□投稿者/ vbk (1回)-(2017/02/02(Thu) 19:22:30)
型引数をNodeIDとしてxs, ysを宣言してるのに、ElemIDとして表示されちゃってますね

VB.Netだからそんなものなのかもしれませんね
他の.Netに合わせて無理やりGenericsと繋げただけ

- 同じファイル内で宣言されたクラスをImportsの型エイリアスに用いることができない
  このためだけに別ファイルに移さなければならない

- 型引数を指定したデータ型エイリアスが書けない
  Genericsの利点が型エイリアスによって灰燼と化す言語仕様

  System.Collections.Immutable
  Imports KV(Of T) = System.Collections.Immutable.ImmutableDictionary(Of T, System.Collections.Immutable.ImmutableList(Of T))

- データ型エイリアスで毎回フルパス記述しなければいけない

  Imports System.Collections.Immutable
  Imports KV = System.Collections.Immutable.ImmutableDictionary(Of T, System.Collections.Immutable.ImmutableList(Of T))
  Imports KVB = ImmutableDictionary(Of T, ImmutableList(Of T)) ←エラー

- 「右クリック>名前の変更」で匿名型メンバーの名前をリファクタリングしようとすると
  『匿名型メンバーの名前の変更は、まだサポートされていません。』というダイアログが表示される。


周りにアレな技術者(?)しかいなくて業務上仕方なく使ってますけど
まあ、割とゴミです。

引用返信 編集キー/
■82770 / inTopicNo.5)  Re[3]: VB.Net の型推論機構について
□投稿者/ typesafer (2回)-(2017/02/03(Fri) 07:45:09)
vbkさん
具体例をありがとうございます。

内容を参考にさせていただき、ビジネス用途には厳しい言語という方向で選定から外そうと思います。協力会社のレベルに合わせて全体品質を落とすようでは本末転倒なので。

あと、実際の事象を列挙していただいたことには感謝いたしますが。
末尾の言についてはいささか礼を失していると感じました。

ゴミに対してはやくあやまっテ!!
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -