开发者社区> 技术小胖子> 正文

C# 语言特性

简介:
+关注继续查看

1 不支持将类型float隐式转换为int,毕竟会导致精度缺失,当然在C++语言中是允许的

代码

    class Program

    {

        static void Main(string[] args)

        {

            float aa = 3;

            int aaa = aa;

        }

    }

   

2 foreach不支持对遍历对象属性的修改

参考

http://www.cnblogs.com/chensuqian/p/4882207.html


http://www.cnblogs.com/jobs/archive/2004/07/17/25218.aspx


3 struct结构体变量是一种不可以为null值的类型

代码

    public struct TreeNode

    {

        public int data;

        public TreeNode leftChild;

        public TreeNode rightChild;

        public TreeNode parent;

    }

尝试定义一棵树的节点,其中指向左右节点和双亲节点,编译出错:变量是一种不可以为null值的类型


正确

 

    public class TreeNode

    {

        public int data;

        public TreeNode leftChild;

        public TreeNode rightChild;

        public TreeNode parent;

    }


4 修饰符“static”对该项无效

类方法的局部变量添加static关键字,再编译时 C# 编译器会报告以下错误:error CS0106: 修饰符“static”对该项无效

    C# 语言不允许使用 static 修饰符来声明方法内部的变量。但是在 C/C++ 语言中是允许这么做的。因此只能在类中定义一个静态变量成员,然后提供给类方法调用



5不可访问,因为它受保护级别限制

    为了访问结构体定义的成员,定义在结构体的public允许命名空间之外进行访问,如果需要访问结构体的变量成员,还必须在定义之前添加public关键字,这一点跟C++完全不一样


代码

    public struct Link

    {

        public int startNodeID;

        public int endNodeID;

        public bool forward;

        public bool backward;

        public int length;

        public int roadClass;

    }


非泛型“***”不能与类型实参一起使用的错误

原因

    缺少包含:using System.Collections.Generic;


代码

    public class Cost

    {

        public double cost;

        public int id;

    }


    public class CostComparer : IComparer<Cost>

    {

        public int Compare(Cost x, Cost y)

        {

            if (x.cost - y.cost < 1e-10)

            {

                return -1;

            }

            else

            {

                return 1;

            }

        }

    }




    本文转自fengyuzaitu 51CTO博客,原文链接:http://blog.51cto.com/fengyuzaitu/1893538,如需转载请自行联系原作者




版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
常用的编程语言
世界上最常用的几种语言
25 0
为什么 C# 可能是最好的第一编程语言
C# 是一个全面领域的全能型语言,结合新时代的 .NET 平台,与时俱进的发展创新,未来无限可期!对于带着有色眼镜看待的人们,是否该刮目相看了呢?下面看看行业大佬关于 .NET 的解说。
850 0
初识Rust中的面向对象
初识Rust中的面向对象
107 0
【Rust 课外知识】Rust中的三种多态性(中)——Trait的两种方式
【Rust 课外知识】Rust中的三种多态性(中)——Trait的两种方式
80 0
各式各样的编程风格 ~~~
各式各样的编程风格 ~~~
47 0
15、编程风格
“编程风格”(programming style)指的是编写代码的样式规则。不同的程序员,往往有不同的编程风格。
137 0
“C 不再是一种编程语言”
本文标题里的观点很“刺激”,它来自国外一位 Swift 和 Rust 专家 Aria Beingessner,他近日撰写了一篇文章《C 不再是一种编程语言》,在技术社区引起了热议。
122 0
TypeScript 面向对象程序设计(OOP)
在 JavaScript 中 ES6 之前我们使用函数(构造器函数)和基于原型来创建一个自定义的类,但这种方式总会让人产生困惑,特别是习惯了 Java、PHP 等面向对象编程的同学来说更加难以理解。 抽象一个类 面向对象编程的基本单位是对象,但对象又是由类实例化的,所以我们第一步需要先知道怎么去声明一个类。 类的声明 类的声明使用 class 关键词,类名与变量、函数等命名规则类似,这里要首写字母大写,类名后跟上一对花括号可以理解为的类的主体,类的主体三部分组成:成员属性、构造函数、成员方法。
72 0
一个不被程序员认为是编程语言的语言
HTML究竟算不算是一门编程语言,这是争执已久的话题。其实,从本质来讲,HTML确实算不上是一门编程语言。关注我,发现更多互联网有趣的无聊的! HTML全称,HyperText Markup Language。
617 0
编程语言 | R代码风格
​ 如同写作,写代码也是有代码风格(code style)。不过代码风格和文风不一样,一个人的文风可以随心所欲,代码风格最好是“千篇一律”。它的核心就是:便于阅读。
810 0
+关注
技术小胖子
文章
问答
视频
相关电子书
更多
为什么要学函数式编程?
立即下载
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
相关实验场景
更多