25

今天早上正在看一本书,其中我发现了一段如下所述:

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

上面几行是否意味着“用不同语言编写的对象可以像这样相互交互”

如果它意味着上面的行,那么上面的行到底意味着什么,说不同的语言可以相互交互,就像

我正在尝试用一个例子来解决,但到目前为止还没有成功。

或者它是我想念的东西,需要知道。请帮我理解。

提前致谢

4

5 回答 5

22

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

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

你必须明确地转换它,这被称为强类型

好像你在 php 中看到的

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

所以在这里你不需要显式地转换它。

于 2012-05-28T05:45:10.057 回答
16

当我们说某些东西是强类型时,我们的意思是对象的类型是已知的和可用的。

假设我有如下功能

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

这里

于 2014-02-17T05:47:19.897 回答
4

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

于 2012-05-28T05:42:29.897 回答
3

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

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

于 2012-05-28T05:48:27.570 回答
0

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

否则会抛出异常。

于 2012-05-28T06:24:13.923 回答