【发布时间】:2017-08-30 12:16:09
【问题描述】:
我正在用 C# 测试下面的代码,它可以成功运行。我的问题是我可以在下面的示例中将一种类型的数据分配给另一种类型的数据,但是为什么它仍然被称为类型安全语言?谢谢。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;
namespace Rextester
{
public class Program
{
public static void Main(string[] args)
{
var intNum = 5;
var strNum = "5";
var result = intNum + strNum;
Console.WriteLine(result);
}
}
}
可以编译成功,结果为55。
【问题讨论】:
-
不,我的问题是 1) C# 是一种类型安全的语言吗?是或否。2)如果答案是肯定的,那么为什么我的代码可以成功编译。这是否意味着我的示例与类型安全问题无关。谢谢。
-
回答:是的。是的。
-
对于不同类型的操作符重载没有什么“类型不安全”。如果你想定义一个在
Foo和Bar上工作的加号运算符来创建一个Baz,你可以这样做,它仍然是类型安全的。