有鑑於我是一個非本科系,且沒上過資策會或者相關職能訓練的一個工程師,一開始學習遇到的問題。
因為最近公司進來的工程師一樣也有同樣問題所以我就想說稍微整理介紹一下。
這邊我會介紹一下 方案(solution) 專案(project) 命名空間(namespace) 類別(class) 方法(method) 屬性(property)
很多菜鳥,因為搞不清楚上述提到的這些 物件的命名以及相關功能,常常在跟帶他的工程師溝通會有代溝,
而很多已經在業界闖盪許久的工程師,以及從相關教育機構或本科系出來的工程師,會認為這些都應該是常識。
這樣的認知落差導致相當多的新手工程師,學了好些時間,一樣不會溝通一樣寫不出符合公司要求的程式。
方案(solution)
指的就是囊括整個專案的一個集合,方案僅是一或多個相關專案的容器、組建資訊、Visual Studio 視窗設定、任何未與特定專案建立關聯的其他檔案。
也就是這個
專案(project)
用於儲存程式的空間容器,可以封裝成dll以及直接被其他專案參考拿來使用(之後有空會針對這個做說明),在一個方案底下可以新增多個專案。各個可以獨立作業也可以互相引用。
命名空間(namespace)
顧名思義,就是命名的空間。預設建立時會設定的跟專案(project)名稱一樣。主要功用也是幫忙你的類別(class) 底下的程式做封裝分類,同樣命名空間的可以直接呼叫該類別名稱,不同命名空間則需要增加不同命名空間才可以實作。
namespace ConsoleApp
{
private static void Main(string[] args)
{
ConsoleApp1.Appclass1 app = new ConsoleApp1.Appclass1();
}
}
被實體化的命名空間以及類別
namespace ConsoleApp1
{
public Appclass1
{
}
}
類別(class)
類別就是所有方法以及屬性的集合,可以說是程式開始撰寫的最小單位,也是最需要了解的部分。MSDN上有詳細範例,可以直接
拿來測試跟學習。https://docs.microsoft.com/zh-tw/dotnet/csharp/programming-guide/classes-and-structs/classes
方法(method)
就是實際執行你想要做的事情,以前常聽老師傅們說,盡量讓一個方法只做一件事情,並且讓方法名稱貼近於它所要做的事情。
所以你也可以把方法認知成你想要解決事情的方法,因為網路範例資訊太過多,我這邊只簡單介紹最簡單的方法範例
同類別的方法使用
namespace ConsoleApp
{
public class Appclass1
{
//建構子。未來有機會會說明
public Appclass1()
{
int c;
//c會得到ab相加為3
c = DoPlus();
}
//方法前面的型別代表的是回傳的內容
public int DoPlus()
{
int a = 1;
int b = 2;
return a+b;
}
}
}
如果是不同類別
namespace ConsoleApp
{
public class Appclass1
{
//建構子。未來有機會會說明
public Appclass1()
{
//app2為實體化Appclass2的變數名稱
Appclass2 app2 = new Appclass2();
int c;
//c會得到ab相加為3
c = app2.DoPlus();
}
}
public class Appclass2
{
//方法前面的型別代表的是回傳的內容
public int DoPlus()
{
int a = 1;
int b = 2;
return a+b;
}
}
}
屬性(property)
屬性是提供彈性機制以讀取、寫入或計算私用欄位值的成員。 使用屬性時可將其視為公用資料成員,但實際上屬性是名為「存取子」的特殊方法。 如此可讓資料更容易存取,同時有助於提升方法的安全性和彈性。
我這邊直接提供可以直接參考以及了解的範例
https://docs.microsoft.com/zh-tw/dotnet/csharp/programming-guide/classes-and-structs/properties
如果想直接實際寫寫看參考的話,可以參考這篇
http://www.runoob.com/csharp/csharp-property.html
新手發帖,如有錯誤可以提醒。我會更正的