强类型在.NET框架中意味着什么?

时间:2012-05-28 05:38:58

标签: c# .net ado.net

今天上午正在阅读一本书,我在其中找到了如下所述的段落:

表中的每个数据字段都是一个强类型数据成员,完全符合.NET的通用类型系统。

上述行是否意味着“用不同语言编写的对象可以像”

一样互相交互

如果它意味着以上几行,那么上述行的含义就是说不同的语言可以互相交流,如

我正试图找出一个例子,但直到现在都没有成功。

或者是我缺少并且需要知道的事情。请帮我理解。

提前致谢

5 个答案:

答案 0 :(得分:21)

例如,您不能将两种不同的类型乘以或除以String vs Integer

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

你必须明确地施放它,这被称为强类型

就像你在php中看到的那样

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

所以在这里你不需要明确地施展它。

答案 1 :(得分:15)

当我们说某些内容是强类型时,我们的意思是该对象的类型是已知且可用的。

假设我有类似以下的功能

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 ++和许多其他语言)是强类型的,因为编译器将在编译时检测并标记这些错误。

请参阅here

答案 2 :(得分:4)

没有。这意味着1"1"(或任何其他数字和字符串)是不同的值,不能在表达式中随意互换。

答案 3 :(得分:2)

“完全符合.NET的通用类型系统”意味着数据类型可用于任何.NET语言。因此,如果您创建了一个在c#中公开符合CTS的属性的类,则可以从VB.net中使用该类。

“表中的每个数据字段都是强类型数据成员”意味着您可以依赖表中值的类型,如果需要,则必须将其转换为其他类型。你不能做隐式演员。

答案 4 :(得分:0)

这意味着,如果有两个不同类型的变量,则必须进行转换,以使操作可执行。

否则会抛出异常。