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,如需转载请自行联系原作者




相关文章
|
1月前
|
C#
C#学习相关系列之数据类型类的三大特性(二)
C#学习相关系列之数据类型类的三大特性(二)
|
3月前
|
编译器 C# 开发者
C# 11.0中的新特性:覆盖默认接口方法
C# 11.0进一步增强了接口的灵活性,引入了覆盖默认接口方法的能力。这一新特性允许类在实现接口时,不仅可以提供接口中未实现的方法的具体实现,还可以覆盖接口中定义的默认方法实现。本文将详细介绍C# 11.0中接口默认方法覆盖的工作原理、使用场景及其对现有代码的影响,帮助开发者更好地理解和应用这一新功能。
|
3月前
|
编译器 C# 开发者
C# 9.0中的顶级语句:简化程序入口的新特性
【1月更文挑战第13天】本文介绍了C# 9.0中引入的顶级语句(Top-level statements)特性,该特性允许开发者在不使用传统的类和方法结构的情况下编写简洁的程序入口代码。文章详细阐述了顶级语句的语法、使用场景以及与传统程序结构的区别,并通过示例代码展示了其在实际应用中的便捷性。
|
1月前
|
数据挖掘 C# 开发工具
采用C#语言开发的全套医院体检系统PEIS源码功能介绍
体检系统,是专为体检中心/医院体检科等体检机构,专门开发的全流程管理系统,通过软件实现检测仪器数据自动提取,内置多级医生工作台,细化工作将体检检查结果汇总,生成体检报告登记到计算机系统中。通过软件系统进行数据分析统计与评判以及建立体检相关的体检档案。从而实现体检流程的信息化,提高工作效率,减少手动结果录入的一些常犯错误。 在实际应用中,医院体检系统能够解决传统体检中手工操作带来的问题,如工作量大、效率低下、易漏检、重检或错检等。通过与医院信息系统(如HIS、LIS、PACS等)的连接,系统能够满足体检中心的日常工作流程,提供更好的管理、统计和查询分析功能。同时,基于网络基础的系统可以在网上传输
26 1
|
3月前
|
开发框架 .NET Java
ASP.NET Core高级编程--C#基本特性(一)
本文章简略介绍C#的部分特性
|
4月前
|
C#
C# 高级语言的 “进制转换”
C# 高级语言的 “进制转换”
|
5月前
|
开发框架 JavaScript Java
推荐一个日历转换开源工具库,支持C#、Java、PHP等主流的语言
推荐一个日历转换开源工具库,支持C#、Java、PHP等主流的语言
42 0
|
5月前
|
C#
c#之Attribute特性的原理
c#之Attribute特性的原理
23 0
|
6月前
|
安全 Java C#
C#语言基础知识
C#语言基础知识