- PR -

たくさんの言語があふれていますが…

投稿者投稿内容
るぱん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 1370
投稿日時: 2006-10-11 10:18
るぱんです。

VBはインタープリターの特性も説明しないとだめなのかなぁ?
そういう意味で言うと、JavaとVBは近いんですが。(笑)
_________________
一郎
ぬし
会議室デビュー日: 2002/10/11
投稿数: 1081
投稿日時: 2006-10-11 10:33
引用:

じゃんぬねっとさんの書き込み (2006-10-11 10:01) より:
".NET Framework で" C# にできることが VB にできない というものが思いつきません。



条件分岐をせずに、長さが0以上の配列を動的に作るとか。

int length; //配列の要素数
int[] arr; //配列

こういう状態でC#だと

arr = new int[length];

ですが、VBだと

If length = 0 Then
arr = new Integer(){}
Else
arr = new Integer(length - 1){}
End if

こうですよね。
・・・糞め。
(とかいっといて、実は方法があったらどうしよう)
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-10-11 10:58
引用:

一郎さんの書き込み (2006-10-11 10:33) より:

条件分岐をせずに、長さが0以上の配列を動的に作るとか。

int length; //配列の要素数
int[] arr; //配列

こういう状態でC#だと

arr = new int[length];

ですが、VBだと

If length = 0 Then
arr = new Integer(){}
Else
arr = new Integer(length - 1){}
End if

こうですよね。
・・・糞め。
(とかいっといて、実は方法があったらどうしよう)


普通にできると思いますけど...

コード:

    Dim length1 As Integer = 0
    Dim arr1    As Integer() = Nothing
    arr1 = New Integer(length1 - 1) {}

    Dim length2 As Integer = 1
    Dim arr2    As Integer() = Nothing
    arr2 = New Integer(length2 - 1) {}


もっと極端に書きますと、

コード:

    Dim arr3 As Integer() = Nothing
    arr3 = New Integer(-1) {}


でも問題ありません。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
かるあ
ぬし
会議室デビュー日: 2003/11/16
投稿数: 1190
お住まい・勤務地: センガワ→ムサシノ
投稿日時: 2006-10-11 11:04
引用:

じゃんぬねっとさんの書き込み (2006-10-11 10:58) より:

コード:

    Dim arr3 As Integer() = Nothing
    arr3 = New Integer(-1) {}


でも問題ありません。


そうなんですよね、最初に見たときは驚きました。
ただ、サイズを -2 以下を設定すると、コンパイラに怒られる。。。
「配列の次元を、負の値サイズに設定することはできません。」

_________________
かるあ のメモスニペット
burton999
ぬし
会議室デビュー日: 2003/10/06
投稿数: 898
お住まい・勤務地: 東京
投稿日時: 2006-10-11 11:25
C#でできてVBでできないのは参照渡しのオーバーロードとかですかね。
別に困らないですけど。。。

コード:
public void TestMethod(int x)
{
}

public void TestMethod(ref int x)
{
}

じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-10-11 11:31
引用:

かるあさんの書き込み (2006-10-11 11:04) より:

そうなんですよね、最初に見たときは驚きました。


確かに C ばかりをやっていると違和感がありますが、
VB の配列の要素数の指定方法は、VB6 以前で良く目にしたであろう UBound() の値になります。

「C# : new int[0]」 と 「VB : New Integer(-1) {}」 は等価なのです。

# UBound が '0' のものは '0' という要素があるので、配列のサイズは 1。
# UBound が '-1' のものは、配列のサイズは 0。

引用:

ただ、サイズを -2 以下を設定すると、コンパイラに怒られる。。。
「配列の次元を、負の値サイズに設定することはできません。」


この点は C# も VB も同じで、コンパイラに叱られますよね。
C# と VB とではエラーメッセージが少し違いますけど。

ごめんなさい、脱線ネタから本題に戻します。
どの言語も適材適所ですから、すぐに廃れるということはないと思います。

Windows アプリケーション限定で考えてしまうと、Java はちょっと苦しいかもしれません。
.NET Framework を利用しようとなれば、C# に傾くでしょうね。
J# を利用するという手もありますが、J#2005 でマシになったといっても C# を選択します。

C# と VB については、開発要員がどちらに偏っているかによりますから、一概に比べられないです。
また、C++/CLI は、ちょっと特異な存在なので、同じ土俵で比べられないです。

以上が個人的な見解になります。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
nagise
ぬし
会議室デビュー日: 2006/05/19
投稿数: 1141
投稿日時: 2006-10-11 11:38
引用:

じゃんぬねっとさんの書き込み (2006-10-11 11:31) より:
Windows アプリケーション限定で考えてしまうと、Java はちょっと苦しいかもしれません。



反面、クロスプラットホームな開発に関してはJavaが有利ですね。

サーバ機がWindowsと限定されないケースでの業務アプリケーションでは
強みがありますが、MS製品で固めた簡易業務アプリだとVBがよく
採用されているように思います。

携帯電話でJavaが優勢なのもクロスプラットホームに寄るところが大きいでしょうね。
J2MEでの開発でオブジェクト指向だとかの対巨大システム用の
ソフトウェア工学はあまり活きていないと思うのですが…。

# VB以外のBASIC系言語は絶滅したのでしょうか…
# いまはC系言語が闊歩している時代ですね。

[編集]引用ミスを修正[/編集]

[ メッセージ編集済み 編集者: nagise 編集日時 2006-10-11 11:39 ]
一郎
ぬし
会議室デビュー日: 2002/10/11
投稿数: 1081
投稿日時: 2006-10-11 11:52
引用:

じゃんぬねっとさんの書き込み (2006-10-11 10:58) より:
普通にできると思いますけど...


あれーっ、昔実際にコードを書いてみてできなかった記憶があるんだけどな・・・
昔の.NET Frameworkだとできないとかありませんか?

スキルアップ/キャリアアップ(JOB@IT)