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




相关文章
|
4月前
|
前端开发 Java C#
java/C#语言开发的医疗信息系统11套源码
java/C#语言开发的医疗信息系统11套源码
82 2
|
4月前
|
C#
C#学习相关系列之数据类型类的三大特性(二)
C#学习相关系列之数据类型类的三大特性(二)
|
4月前
|
存储 安全 Java
C#语言特点及基础
C#语言特点及基础
|
17天前
|
存储 开发框架 .NET
C#语言究竟隐藏了哪些秘密?一文带你揭开编程界的神秘面纱
【8月更文挑战第22天】C#是微软推出的面向对象编程语言,以其简洁的语法和强大的功能,在软件开发领域占据重要地位。作为一种强类型语言,C#确保了代码的可读性和可维护性。它支持多种数据类型,如整型、浮点型及复合类型如类和结构体。类是核心概念,用于定义对象的属性和行为。C#还包括方法、异常处理、集合类型如列表和字典,以及泛型和LINQ等高级特性,支持异步编程以提高应用响应性。.NET Core的推出进一步增强了C#的跨平台能力。
43 3
|
2天前
|
监控 安全 C#
C# 语言助力员工监控系统的完善
在数字化时代,企业日益重视员工管理的效率与精准度,员工监控系统因此成为提升管理水平的有效工具。C# 语言凭借其简洁、高效和安全的特点,在开发此类系统中扮演了重要角色,可实现实时监控员工电脑操作、网络行为及工作时间统计等功能,从而提高工作效率并保障企业利益。同时,企业在应用这些技术时也需关注员工隐私权的保护。
16 6
|
10天前
|
JSON C# 开发者
💡探索C#语言进化论:揭秘.NET开发效率飙升的秘密武器💼
【8月更文挑战第28天】C#语言凭借其强大的功能与易用性深受开发者喜爱。伴随.NET平台演进,C#持续引入新特性,如C# 7.0的模式匹配,让处理复杂数据结构更直观简洁;C# 8.0的异步流则使异步编程更灵活高效,无需一次性加载全部数据至内存。通过示例展示了模式匹配简化JSON解析及异步流实现文件逐行读取的应用。此外,C# 8.0还提供了默认接口成员和可空引用类型等特性,进一步提高.NET开发效率与代码可维护性。随着C#的发展,未来的.NET开发将更加高效便捷。
23 1
|
23天前
|
开发框架 .NET 编译器
总结一下 C# 如何自定义特性 Attribute 并进行应用
总结一下 C# 如何自定义特性 Attribute 并进行应用
|
2月前
|
存储 Oracle 关系型数据库
PACS源码,C#语言数字医学影像系统成品源码
**数字医学影像系统(RIS/PACS)**采用C#开发,基于C/S架构,配Oracle数据库,具备自主版权,适用于项目实施。系统包含分诊、超声、放射、内镜、病理等工作站,支持基本信息维护、报表查询和系统维护。功能亮点有:WorkList管理、影像采集传输、存储检索、图像处理、多序列浏览、流程控制、报告录入与审核、支持多种影像设备及高级影像处理。RIS与PACS数据库同步,并集成HIS、电子病历等系统接口。全面遵循DICOM3.0标准。
PACS源码,C#语言数字医学影像系统成品源码
|
19天前
|
程序员 C#
C# 语言类型全解
C# 语言类型全解
12 0
|
19天前
|
开发框架 .NET C#
C#语言进阶(四) 枚举器和迭代器
C#语言进阶(四) 枚举器和迭代器
25 0
下一篇
DDNS