web-dev-qa-db-ja.com

.NETフレームワークで強く型付けされたとはどういう意味ですか?

今朝は本を読んでいて、次のような段落を見つけました。

テーブルの各データフィールドは、強く型付けされたデータメンバーであり、.NETのCommon Type Systemに完全に準拠しています。

上記の行は、「異なる言語で記述されたオブジェクトが互いに相互作用できることを意味しますか」

そして、それが上記の行を意味する場合、上記の行は正確に何を意味するのかさまざまな言語が互いに相互作用することができます

私は模範を模索しようとしていますが、今のところ成功していません。

それとも私が見逃していて知っておく必要のあるものですか。理解してください。

前もって感謝します

21
Tony

たとえば、2つの異なるタイプを乗算または除算することはできません。つまり、String vs Integer

var answer = 1 * "1"; // you cannot do this

あなたはそれを明示的にキャストする必要があります、これは強く型付けされたとして知られています

あなたがPHPで見るかのように

$x = "3" * 1; // is correct in php

したがって、ここでは明示的にキャストする必要はありません。

21
FosterZ

強く型付けされているとは、オブジェクトの型が既知であり、利用可能であることを意味します。

次のような機能があるとしましょう

public int Add(int a, int b){
 return a+b;
}

この関数は次のように呼び出すことができます

int result = Add(5,4);

しかし、次のようなことはできません

int result = Add(5.2,4.5); // We will get here compilation error.

コンパイラーはコンパイル時にこれらのエラーを検出してフラグを付けるため、C#(およびC++および他の多くの言語)は強く型付けされています。

こちら を参照

16

いいえ。つまり、1および"1"(またはそのほかの数値と文字列)は異なる式であり、式内で偶然交換することはできません。

「.NETのCommon Type Systemに完全に準拠」とは、データ型が.NET言語で使用できることを意味します。したがって、CTSに準拠したプロパティをc#で公開するクラスを作成した場合、そのクラスはVB.netなどから使用できます。

「テーブルの各データフィールドは強く型付けされたデータメンバーです」とは、テーブルの値の型に依存できることを意味し、必要に応じて別の型にキャストする必要があります。暗黙的なキャストはできません。

3
user381624

つまり、異なるタイプの変数が2つある場合は、それらをキャストして、操作を実行可能にする必要があります。

そうでない場合は、例外がスローされます。

0
Kishore Kumar