.net技术第一章


.NET

由微软公司提供的免费、跨平台的开源通用开发平台,可用于开发许多不同类型的应用,如:Web,移动设备,PC桌面端等

C# (C Sharp)的特点

  • 是一种现代的、简洁而类型安全的面向对象编程语言
  • C#源于C 语言系列,采用与C、C++或Java一致的花括号({和})语法
  • 能与.NET Framework完美结合

C# 的应用范围

  • 控制台应用
  • 桌面应用
  • UWP应用
  • Web应用开发:ASP.NET、Web服务等
  • Windows Presentation Foundation(WPF)应用程序开发
  • 跨平台:移动应用、智能手机应用开发
  • Windows服务
    ……

.NET Framework

  • C# 程序在 .NET Framework 上运行
  • .NET Framework是一个开发和运行环境,可以使不同的编程语言(如C#、VB.net等)和运行库能够无缝地协同工作,简化开发和部署各种网络集成应用程序或独立应用程序
    在这里插入图片描述
    在这里插入图片描述

1.2 创建简单的C#程序

  • 引用命名空间
  • 定义命名空间
  • 自定义类
  • 定义静态Main方法
  • 调用Console类的静态方法输出
 //c:\CSharpBook\Chapter01\Hello.cs   A "Hello World!" program
02 // compile:csc Hello.cs  -> Hello.exe
03 using System;
04 namespace CSharpBook. Chapter01
05 {
06     class HelloWorld
07    {
08         static void Main() 
09         {
10              Console.WriteLine(“Hello World!);
11         }
12     }
13 }

结构和书写规则

在这里插入图片描述

在这里插入图片描述

类型的声明和使用

声明类的基本语法为:

[类修饰符] class 类名 
{
    类体
}[;]
声明字段和方法:

[字段修饰符] 类型 字段名
[方法修饰符] 返回值类型  方法名 ([形参列表])
{
    方法体
}[;]
类名 对象名= new 类名 ([参数表]); //创建对象
对象名.属性                                        //访问对象属性
对象.方法名([实参列表])

类型的声明和使用

// compile:csc Point.cs  -> Point.exe
using System;
namespace CSharpBook.Chapter01
{
    public class Point    //声明类Point
    {
        public int x, y;    //声明字段x和y,表示坐标点(x,y)
        public Point(int x, int y)  //构造函数
        {
            this.x = x; this.y = y;
        }
        public double Distance(Point p)
        { //声明方法Distance,计算并返回该对象(坐标点)
            //与对象p(另一坐标点)的距离
            return Math.Sqrt((x - p.x) * (x - p.x) + (y - p.y) * (y - p.y));
        }
    }


    class PointTest
    {
        static void Main()
        {
            Point p1 = new Point(0, 4);       //创建对象p1(坐标点1)
            Point p2 = new Point(3, 0);       //创建对象p2(坐标点2)
            double dist = p1.Distance(p2);      //调用对象p1的方法Distance
            //访问p1的属性x和y
            Console.WriteLine("点p1的坐标为:(" + p1.x + "," + p1.y + ")");
            //访问p2的属性x和y
            Console.WriteLine("点p2的坐标为:(" + p2.x + "," + p2.y + ")");
            Console.WriteLine("两点之间的距离为:" + dist); Console.ReadKey();
        }
    }
}

命名空间

  • C#程序是利用命名空间组织起来的。为了有效地组织C#程序中的类型并保证其唯一性,C#引入了命名空间的概念,从而最大限度地避免类型重名错误。

  • 命名空间是一种逻辑组合。C#程序中类型由指示逻辑层次结构的完全限定名(fully qualified name)描述。例如,CSharpBook. Chapter01. HelloWorld表示CSharpBook命名空间的子命名空间Chapter01中的HelloWorld类

  • 声明格式如下:

  •                                 namespace 命名空间名称
    
  • 一个源程序文件中可以包含多个命名空间;同一命名空间可以在多个源程序文件中定义。命名空间可以嵌套。同一命名空间中不允许定义重名的类型

使用方法

  • 访问命名空间:[.].类型
    using 命名空间 可以非限定方式直接引用该命名空间中的类型

  • 命名空间别名:using 别名 = 命名空间或类型名;
    分别用“别名::类型”,“别名.方法”进行调用

  • 全局命名空间:使用全局命名空间限定符global::

命名空间举例

// compile:csc AliasNSTest.cs  ->  AliasNSTest.exe
using AliasNS = System;
using AliasClass = System.Console;
namespace CSharpBook.Chapter01
{
    class AliasNSTest
    {
        static void Main()
        {   
            // AliasNS.Console.WriteLine("Hi 1");  // 错误!
              AliasNS::Console.WriteLine("Hi 2"); // OK
            // AliasClass::WriteLine("Hi 3"); // 错误!
              AliasClass.WriteLine("Hi 4"); // OK
              AliasClass.ReadKey();
        }
    }
}
// compile:csc GlobalNSTest.cs  ->  GlobalNSTest.exe 
using System;
namespace CSharpBook.Chapter01
{
    class GlobalNSTest
    {
        // 定义一个名为'System'的新类,为系统制造麻烦.
        public class System { }
        // 定义一个名为'Console'的常量,为系统制造麻烦.
        const int Console = 7;
        const int number = 66;
        static void Main()
        {
            // Console.WriteLine(number);  // 出错:访问TestApp.Console
            global::System.Console.WriteLine(number);   //OK!访问正确的命名空间中的类型
            global::System.Console.ReadKey();
        }
    }
}

注释

  • C#使用传统的C风格注释方式
    单行注释使用“// … ”
    多行注释使用“/* … /”
    内联注释:多行注释放在一行代码中,该行中置于“/
    ”和“*/”字符之间

  • XML文档注释
    以3个斜杠(///)开头的单行注释

Main方法

  • Main方法声明
  • C#的可执行程序必须包含一个Main方法,用于控制程序的开始和结束
  • C#中所有的Main方法都是静态的,使其不必依赖于类的实例对象而执行
  • 如果有多个Main方法,可以使用/main选项,其后跟Main方法所属类的全名(包括命名空间),明确告诉编译器将哪个方法作为程序的入口点

在这里插入图片描述

命令行参数

Main方法的参数是表示命令行参数的String数组
通过测试args.Length属性来检查参数是否存在
args[0]表示第一个参数,args[1]表示第二个参数

在这里插入图片描述

Main返回值

Main方法可以是void类型,也可以返回整型值int。如不需Main返回值,可用void使代码变简洁

控制台输入和输出

  • System.Console类
    表示控制台应用程序的标准输入流、输出流和错误流

  • 格式化输出:
    Console.WriteLine(复合格式字符串, 输出对象列表);

  • System. Console类常用方法
    在这里插入图片描述

例子

using System;
namespace CSharpBook.Chapter01
{
    class ConsoleIO
    {
        static void Main(string[] args)
        {
           Console.Clear();                      //清屏
           Console.Write("请输入您的姓名:");    //提示输入
           String s = Console.ReadLine();          //读取1行,以回车结束
           Console.Beep();                      //提示音
           Console.WriteLine("欢迎您!" + s);     //输出读取的内容
           Console.Read();                      //按回车键结束
        }
    }
}

格式化

//Console.WriteLine(“(C) Currency: {0:C}\n(E) Scientific:{1:E}\n”, -123, -123.45f);

using System;
namespace CSharpBook.Chapter01
{
    class ComFormat
    {
       static void Main(string[] args)
       {
          Console.WriteLine("{0:C3}", 12345.6789); // 显示: ¥12,345.679
          Console.WriteLine("{0:D8}", 12345);     // 显示: 00012345
          Console.WriteLine("{0:E10}", 12345.6789); // 显示: 1.2345678900E+004
          Console.WriteLine("{0:F3}", -17843);      // 显示:  -17843.000
          Console.WriteLine("{0:00000.000}", 123.45);// 显示: 00123.450
          Console.WriteLine("{0:#####.###}", 123.45); // 显示: 123.45
          DateTime date1 = new DateTime(2014, 4, 10, 6, 30, 0);
          Console.WriteLine(date1.ToString("yyyy/MM/dd hh:mm:ss")); //显示: 2014/04/10 06:30:00
          Console.ReadKey();
       }
    }
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

醉卧考场君莫笑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值