關於網路那些事...

網路行銷,SEO,網路趨勢,創業文章,網頁設計,生活時事

C# 用 system.IO 操作檔案 - 教學筆記 (使用visual studio)

| Comments

使用C# System.IO namespace,可以用在檔案建立、寫入、讀取...

在這裡,主要介紹 System.IO 的 File Class

WriteAllText 寫入/建立檔案

透過WriteAllText可以將文字寫入檔案(如果檔案不存在,會自動建立),格式為:

File.WriteAllText(檔案位置及名稱, 字串);

範例:

string x = "Hello text";
File.WriteAllText("myfilename.txt", x);

ReadAllText 讀取文件

使用ReadAllText可以直接讀取文件中的內容,格式為:

File.ReadAllText(檔案位置及名稱);

建立檔案 & 讀取檔案 範例:

//建立檔案
string x = "Hello text";
File.WriteAllText("myfilename.txt", x);
//讀取檔案
string y = File.ReadAllText("myfilename.txt");
Console.WriteLine(y); 

AppendAllText 插入文字

C# 將字串插入文件內容尾端
範例:

File.AppendAllText("myfilename.txt", " append text to the end.");
string y = File.ReadAllText("myfilename.txt");
Console.WriteLine(y);

Exists 判斷檔案是否存在

透過 Exists 可以判斷檔案是否已經存在
返回布林值

File.Exists(檔案位置及名稱);

範例

if (File.Exists("myfilename.txt")) {
    Console.WriteLine("Yes");
}else{
    Console.WriteLine("No");
}

Delete 刪除檔案

刪除指定的檔案

File.Delete(檔案位置及名稱);

範例

File.Delete("myfilename.txt");
if (File.Exists("myfilename.txt")) {
    Console.WriteLine("Yes");
}else
{
    Console.WriteLine("No");
}

Copy 複製檔案

將檔案複製到指定路徑

File.Copy(檔案位置及名稱, 要複製的位置及新檔案名稱);

範例

File.Copy("myname.txt", "myname2.txt");
string x = File.ReadAllText("myname2.txt");
Console.WriteLine(x);

Move 移動檔案

透過Move可以移動資料到指定的位置,並且可以重新命名
(當然,一般移動都會維持原始名稱)

File.Move(檔案位置及名稱, 要移動的位置及新檔案名稱);

範例

File.Move("myname.txt", "file/myname2.txt");
string x = File.ReadAllText("file/myname2.txt");

如果你喜歡我們的文章內容,請在這裡按個讚



C# try-catch 例外處理(Execption Handling) - 教學筆記 (使用visual studio)

| Comments

例外處理,可以處理一些未知且發生錯誤的情況,例如: 輸入不合法(型別不符)的值、找不到要開啟的資料、處理資料時突然失去連線...。

在C# 例外處理使用 try-catch 陳述式

只要將一般陳述式放在try區塊,

當try區塊發生發生時,就會移向catch區塊,用Exception擷取錯誤


如果你喜歡我們的文章內容,請在這裡按個讚



Read on →

C# 結構(Structs) - 教學筆記 (使用visual studio)

| Comments

C# 的 Struct 是一個value type的小群組,

在管理程式變數時,非常好用

例如,對於註冊用戶資料,會包含姓名、性別、住址....
透過struct,就可以將用戶資料統整成一個群組結構


如果你喜歡我們的文章內容,請在這裡按個讚



Read on →

C# 運算子實現類別多載 - 教學筆記 (使用visual studio)

| Comments

Operator Overloading on Class

在C#設計Class,可以搭配運算子(operator)來做到多載(overloading)
並且,要Overloading的運算子,必須是 static
例如:

    class Box
    {
        public int Height { get; set; }
        public int Width { get; set; }

        public Box(int h, int w)
        {
            Height = h;
            Width = w;
        }
        public static Box operator +(Box a, Box b)
        {
            int h = a.Height + b.Height;
            int w = a.Width + b.Width;
            Box res = new Box(h, w);
            return res;
        }
    }

    static void Main(string[] args)
    {
        Box b1 = new Box(14, 3);
        Box b2 = new Box(5, 7);
        Box b3 = b1 + b2;
        Console.WriteLine(b3.Height);
        Console.WriteLine(b3.Width);
    }

底下範例中,實現多載 operator +, operator -, operator *, operator /

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication2
{
    class Program
    {

        class Cacul
        {
            public double A;
            public double B;
            public Cacul(double x, double y)
            {
                A = x;
                B = y;
            }
            //constructor 使用 operator overloading +
            public static Cacul operator +(Cacul j, Cacul k)
            {
                double x = j.A + k.A;
                double y = j.B + k.B;
                Cacul z = new Cacul(x, y);
                return z;
            }
            //constructor 使用 operator overloading -
            public static Cacul operator -(Cacul j, Cacul k)
            {
                double x = j.A - k.A;
                double y = j.B - k.B;
                Cacul z = new Cacul(x, y);
                return z;
            }
            //constructor 使用 operator overloading *
            public static Cacul operator *(Cacul j, Cacul k)
            {
                double x = j.A * k.A;
                double y = j.B * k.B;
                Cacul z = new Cacul(x, y);
                return z;
            }
            //constructor 使用 operator overloading /
            public static Cacul operator /(Cacul j, Cacul k)
            {
                double x = j.A / k.A;
                double y = j.B / k.B;
                Cacul z = new Cacul(x, y);
                return z;
            }
        }
        static void Main(string[] args)
        {
            Cacul t1 = new Cacul(3, 4);
            Cacul t2 = new Cacul(5, 6);
            Cacul t3 = t1 + t2;
            Console.WriteLine(t3.A);//8
            Console.WriteLine(t3.B);//10
            Cacul t4 = t1 - t2;
            Console.WriteLine(t4.A);//8
            Console.WriteLine(t4.B);//10
            Cacul t5 = t1 * t2;
            Console.WriteLine(t5.A);//8
            Console.WriteLine(t5.B);//10
            Cacul t6 = t1 / t2;
            Console.WriteLine(t6.A);//8
            Console.WriteLine(t6.B);//10

        }
    }
}


如果你喜歡我們的文章內容,請在這裡按個讚



C# Readonly - 教學筆記 (使用visual studio)

| Comments

readonly與常數用法很像,
相較於常數,readonly通常會用在class流程設計
readonly 在建構子指派值之後,就不能更改

readonly可以在建構子裡面修改


如果你喜歡我們的文章內容,請在這裡按個讚



Read on →

C# Math, String, Array, Datetime 類別 - 教學筆記 (使用visual studio)

| Comments

在這裡記錄一些常用的 C# 內置的靜態類別


如果你喜歡我們的文章內容,請在這裡按個讚



Read on →

C# 解構子 Destructors - 教學筆記 (使用visual studio)

| Comments

前面我們有提到,只要class被實例化(instantiated),當下就會立即執行建構子
而這裡要說明的解構子(destructor),也是在class被實例化時,會被執行

解構子,具有下列特性:
- 一個class只能有一個解構子
- 會在class執行完成,準備結束時自動被調用
- 無法被呼叫
- 不接受修飾符及參數


如果你喜歡我們的文章內容,請在這裡按個讚



Read on →

C# get & set 存取子(accessors) - 教學筆記 (使用visual studio)

| Comments

C# get & set 存取子
class的屬性(Property)可以讓讀、寫、運算機制變得更有彈性,
在這裡要介紹屬性的一個特殊的methods,稱為: 存取子(accessors),也可稱為訪問器
存取子包含 get存取子、set存取子


如果你喜歡我們的文章內容,請在這裡按個讚



Read on →

C# 建構子 (Constructors) - 教學筆記 (使用visual studio)

| Comments

C# 建構子 Constructors 說明
建構子是一個特殊的Method成員,
只要class被實例化,當下就會立即執行建構子(自動被調用)

在C#中,建構子的名稱必須和class一致,並且不需要定義類型
並且,可以傳入參數


如果你喜歡我們的文章內容,請在這裡按個讚



Read on →

C# 繼承 (Inheritance) - 教學筆記 (使用visual studio)

| Comments

C# 繼承(Inheritance) Class 說明

物件導向的方便之處在於,可以被拿來重複使用及擴充
例如,今天新增了使用者檢視列表Class
如果在無法更動情況下,想要擴充新增使用者功能
就可以用繼承(Inheritance)的方式
而被繼承的Class,稱之為「基底類別」(Base Class)

但也要特別留意!
C#不支援多重繼承
所以,只允許繼承一個「基底類別」(Base Class)


如果你喜歡我們的文章內容,請在這裡按個讚



Read on →