C# 教程 在线

2351C# 数据类型

关于装箱和拆箱

装箱:值类型转换为对象类型, 实例:

int val = 8;
object obj = val;//整型数据转换为了对象类型(装箱)

拆箱:之前由值类型转换而来的对象类型再转回值类型, 实例:

int val = 8;
object obj = val;//先装箱
int nval = (int)obj;//再拆箱

只有装过箱的数据才能拆箱

2350C# 基本语法

using System;namespace RectangleApplication{
    class Rectangle
    {
        // 成员变量
        double length;//声明一个double类型的变量length 
        double width;//声明一个double类型的变量width
        public void Acceptdetails() //一个用来赋值的方法
        {
            length = 4.5;    
            width = 3.5;
        }
        public double GetArea() //一个用来计算的方法
        {
            return length * width;
        }
        public void Display()  //一个用来打印的方法
        {
            Console.WriteLine("Length: {0}", length);
            Console.WriteLine("Width: {0}", width);
            Console.WriteLine("Area: {0}", GetArea()); //打印GetArea方法的计算结果
        }
    }
    
    class ExecuteRectangle
    {
        static void Main(string[] args) //程序入口方法,创建实例,调用相应的方法
        {
            Rectangle r = new Rectangle();
            r.Acceptdetails();
            r.Display();
            Console.ReadLine();
        }
    }
}

在这段代码中,逻辑是这样的:

  • 首先进入 Main 方法,创建一个名称为 r 的实例。
  • 然后调用 Acceptdetails 给 r 进行赋值。
  • 最后调用 Display 方法打印结果。
  • 而用于计算的 GetArea 方法在在调用 Display 时直接打印出来。

2349C# 基本语法

在 C# 中:

int 相当于 System.Int32
double 相当于 System.Double
strin g相当于 System.String

一般在程序开头添加 using System;,这时 string 相当于 System.String

2348C# 基本语法

using System;
namespace RectangleApplication
{
    class Rectangle
    {
        // 成员变量
        double length;
        double width;
        public void Acceptdetails()//顯示length = 4.5 width = 3.5
        {
            length = 4.5;    
            width = 3.5;
        }
        public double GetArea()//計算length * width數值
        {
            return length * width;
        }
        public void Display()//顯示所需要的顯示的
        {
            Console.WriteLine("Length: {0}", length);
            Console.WriteLine("Width: {0}", width);
            Console.WriteLine("Area: {0}", GetArea());
        }
    }
    
    class ExecuteRectangle
    {
        static void Main(string[] args)
        {
            Rectangle r = new Rectangle();//實體化 r
            r.Acceptdetails(); //使用Rectangle這個方法=顯示length = 4.5 width = 3.5
            r.Display();//使用Display這個方法計算length * width數值
            Console.ReadLine();
        }
    }
}

當一個方法有超過兩件事情,就分開來寫。

物件導向 & 面相對向的原理就是善用 Class 做分類。

不要將所有事情都寫在一起,到時候有問題要全部重寫。

也有可能別人在看代碼需要很多時間去理解。

因此善用分類,讓大家都能輕易讀懂。

未來 Class 一定會建立很多,可能一個 Class 就只有 2-3 行。

但這就是單一職責,高內聚 低耦合,讓未來 debug 不會這麼痛苦。

寫不難,邏輯分清楚,讓大家都能懂,這才難。

2347C# 基本语法

class ExecuteRectangle
{
    static void Main(string[] args)
    {
        Rectangle r = new Rectangle();
        r.Acceptdetails();
        r.Display();
        Console.ReadLine();
    }
}

这段话的意义文中并没有给出解释

其实是用来声明前面 Acceptdetails()Display()

Console.ReadLine(); 是使程序在接受到输入后才结束,而不是马上结束并关掉命令行窗口。