C#简介

C#是一个简单、现代化、类型安全的编程语言,具有与C、C++、Java、JavaScript相似的语法。它引入了虚拟机技术,支持null值、枚举、委托、lambda表达式和直接内存访问等功能。C#重视表达性,提供泛型方法和类型,源文件可定义多个类、结构、接口和事件。作为纯面向对象语言,C#中的一切皆对象,包括基础类型如。C#广泛应用在UWP、ASP.NET、Office等多个平台,拥有广泛的生态系统和强大的IDE支持。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

C#——纯面向对象语言

本文共764个中文字符
C# 是一个简单、现代化、面向对象和类型安全的编程语言。C#非常类似于 C、C++、Java、JavaScript,很容易上手,博主曾断断续续地写过两年的C#代码,在此也是有一点点经验,下面介绍一下 C# 这门语言。

1998年底,微软学习了Java的方法,引入虚拟机技术;同年12月,微软开启了 COOL 项目。2000年,COOL 更名 C# 并在7月份发布。

C# 语法高度重视表达,简化了 C++ 的许多复杂操作,并提供 Java 没有的 null 值、枚举、委托、lambda 表达式和直接内存访问;支持泛型方法和类型;还有特有的 LINQ 表达式。 C# 源文件可以定义任意数量的类、结构、接口和事件,是纯面向对象的语言。

“纯面向对象”,意味着“一切皆对象”,请看如下 Hello World 代码:

namespace ConsoleApp2
{
    class Program
    {
        static void Main(string[] args)
        {
            System.Console.WriteLine("Hello World!");
        }
    }
}

即便是Main函数,也讲究放在Program这个“类”里面;类似于 C 语言printfWriteLine函数,也讲究放在Console这个“类”里面,这正是纯面向对象的体现。

事实上,不仅仅是Main,连int也是一个“类”(准确地说是“结构struct”),int的“真身”是System.Int32,其定义如下:


using System.Globalization;

namespace System
{
    public struct Int32 : IComparable, IComparable<Int32>, IConvertible, IEquatable<Int32>, IFormattable
    {
        public const Int32 MaxValue = 2147483647;
        public const Int32 MinValue = -2147483648;

        public static Int32 Parse(string s);
        public static Int32 Parse(string s, NumberStyles style);
        public static Int32 Parse(string s, NumberStyles style, IFormatProvider provider);
        public static Int32 Parse(string s, IFormatProvider provider);
        public static bool TryParse(string s, NumberStyles style, IFormatProvider provider, out Int32 result);
        public static bool TryParse(string s, out Int32 result);
        public Int32 CompareTo(Int32 value);
        public bool Equals(Int32 obj);
        public override bool Equals(object obj);
        public override Int32 GetHashCode();
        public override string ToString();
        public string ToString(IFormatProvider provider);
        public string ToString(string format);
        public string ToString(string format, IFormatProvider provider);
    }
}

这些代码的含义是,Int32这个类本身具有最小值和最大值两个属性(常量const属性,同时也是静态属性),这个类本身提供字符串转Int32的各种方法(称为静态static方法),而Int32的对象提供比较、获取哈希值、Int32转字符串的方法。

看起来最基础的int的内容其实十分复杂,但也因此使 C# 更容易上手,因为任何一个类几乎都提供了丰富的属性和方法可供使用。

通过上面这个例子,我们对int有了更进一步的了解。那么,关于int的特点我们还能发掘多少呢?

留意到

public struct Int32 : IComparable, IComparable<Int32>, IConvertible, IEquatable<Int32>, IFormattable

这一行冒号后面的部分。它表示“继承”,而后面若干个I开头的分别表示可比较、Int32类型的可比较、可转换、可相等、可格式化。这5个特点给Int32下了个不完整的定义。实际上,这5个“特点”叫做“接口interface”,接口也是 C# 的“类”之一,是指定一组函数成员(不包括数据成员)而不实现成员的引用类型。与 C++ 不同,C# 中的接口有专门的关键字,并且用得非常广泛。以上5个接口的定义如下:

namespace System
{
    public interface IComparable
    {
        int CompareTo(object obj);
    }

    public interface IComparable<in T>
    {
        int CompareTo(T other);
    }

    public interface IConvertible
    {
        TypeCode GetTypeCode();
        bool ToBoolean(IFormatProvider provider);
        byte ToByte(IFormatProvider provider);
        char ToChar(IFormatProvider provider);
        DateTime ToDateTime(IFormatProvider provider);
        decimal ToDecimal(IFormatProvider provider);
        double ToDouble(IFormatProvider provider);
        short ToInt16(IFormatProvider provider);
        int ToInt32(IFormatProvider provider);
        long ToInt64(IFormatProvider provider);
        sbyte ToSByte(IFormatProvider provider);
        float ToSingle(IFormatProvider provider);
        string ToString(IFormatProvider provider);
        object ToType(Type conversionType, IFormatProvider provider);
        ushort ToUInt16(IFormatProvider provider);
        uint ToUInt32(IFormatProvider provider);
        ulong ToUInt64(IFormatProvider provider);
    }

    public interface IEquatable<T>
    {
        bool Equals(T other);
    }

    public interface IFormattable
    {
        string ToString(string format, IFormatProvider formatProvider);
    }
}

目前,C# 语言的使用非常广泛,2017年3月,C# 在世界编程语言排行榜中排第4位。C# 可用于 UWP、ASP .NET、Office、Android、Azure、iOS 等多个项目中。并且,得益于 Visual Studio 这一强大的 IDE,C# 的前景仍然非常光明。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值