前言
正在持續更新
直到教完C#基礎...
目前進度30%...
開篇
今天,開啓一個教程,教C#編程入門。
相信大家初看代碼,都不懂是什麼,還記得我初學編程的時候也是什麼都不懂,光看着代碼,然後老師解釋意思,什麼是面向對象、類、變量等...老師張口就來,我完全沒有理解,然後很快就忘了是什麼,用來做什麼,在學了2年的時候,依然一片迷茫,就猶如一個摩天大廈,老師每節課只給一塊磚,這樣永遠都摸不清這個大廈的結構和怎麼建成。
所以我會先生動形象的說明每一句代碼乾的事情,即使看不懂代碼意思和寫法,只需要聽懂我比喻的結構,就能理解代碼的大概,然後我再說明代碼用法和編寫結構。
我們先來看一份經典的C#Hellow代碼。
using System;
namespace HelloWorldApplication
{
class HelloWorld
{
static void Main(string[] args)
{
Console.WriteLine("Hello World");
Console.ReadKey();
}
}
}
生動形象的說一下編程是怎麼一回事
首先,編程有些職業也被稱爲工程師。
爲什麼會叫工程師呢?工程師不是在工地搬磚的嗎(笑)
因爲編程就和造房子很像,說到造一間房子,大家會想到要怎麼造呢?
...
一般來說,造一個房子,會先打地基,結構上會有門口、臥室客廳等,裝飾和用品上會有傢俬、裝飾品、生活用品和空調wifi。
光有空調wifi,還要有電!但是發電廠又非常的大,房間內總不會弄一臺發電機,所以還要連接水電。
爲什麼要提到以上的這些事情,因爲這些事或多或少地會體現在你編寫的代碼項目內。
接下來我來說明一下這些事情,對應了你編程上的什麼。
造房子即是整體,對應整個項目。//TODO 超鏈接到MSDN
大到核發電廠,小到空調外機,對應了引用庫。
門作爲入口,對應代碼的Main方法。
臥室廚房,對應不同的系統或代碼塊。
每個一個東西可例如書本牀,對應不同的對象。
不同的對象有不同的數值和特性,例如牀有寬度長度、書本有售價,對應變量、常量、方法等..
每個東西又有想讓人看見的,也有不想讓人看見的,對應代碼不同的保護程度。
粗體的字都是一些編程上的專業術語,也就是我學生時期的時候,聽到老師說出來又不理解的事情,但現在我通過比喻地講解了,而且完全可以用這些術語和程序員交流。
有了這些基礎的瞭解之後,就可以嘗試去閱讀代碼了。
上代碼!
說完以上這些,我們再回來看看代碼。看看是否都能看懂了呢?
/*引用庫,就像我們造房子需要發電廠、煤氣、空調外機*/
using System;
/*命名空間,相當於住址一樣*/
namespace HelloWorldApplication
{
/*類名爲HellowWorld,相當於你的房子*/
class HelloWorld
{
/*Main函數,相當於房子入口*/
static void Main(string[] args)
{
/*在方法內可以寫具體代碼,每一句代碼,就相當於做了一件事情,比如你想讓空調製冷。*/
Console.WriteLine("Hello World");
Console.ReadKey();
}
}
}
你會發現,即使你不懂代碼,在看完“造房子”這個比喻之後,然後看着單詞對應的中文意思,你大概可以猜到代碼要幹一件什麼事情。
看到這裏,大家是否對代碼稍微有點看的懂了呢?
嘗試看一份Unity的移動代碼
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class TestMove : MonoBehaviour
{
public float moveSpeed = 5f;
void Update()
{
if (Input.GetKey(KeyCode.W))
{
transform.Translate(Vector3.forward * moveSpeed * Time.deltaTime);
}
if (Input.GetKey(KeyCode.S))
{
transform.Translate(Vector3.back * moveSpeed * Time.deltaTime);
}
if (Input.GetKey(KeyCode.A))
{
transform.Translate(Vector3.left * moveSpeed * Time.deltaTime);
}
if (Input.GetKey(KeyCode.D))
{
transform.Translate(Vector3.right * moveSpeed * Time.deltaTime);
}
}
}
上手熟悉IDE
vs的使用,新建項目,什麼類型的項目是怎樣的,
如何檢測代碼正確,如何看錯誤定位錯誤,
如何運行,如何調試,快捷鍵
學習C#全部內容
簡介
- 現代的、通用的編程語言。
- 面向對象。
- 面向組件。
- 容易學習。
- 結構化語言。
- 它產生高效率的程序。
- 它可以在多種計算機平臺上編譯。
- .Net 框架的一部分。
基礎1 - 程序結構與基本語法
C#是一門語言,語言就會有語法,這是約定,不太需要記住,看多和練習多之後,就會和說話一樣自然。
解釋格式
語句: 語句 + ;
定義變量格式: 修飾詞 + 類型 + 名字 + ;
定義方法: 修飾詞 + 返回類型 + 名字 + (參數) + { + 內容 + }
解釋語法: 等號 運算+-*/
調用變量: 類.變量
調用方法:類.方法(參數)
Work1
基礎2 - 數據類型,變量與常量,輸入輸出語句
類型:int, float , double ,string,bool,
定義變量:<data_type> <variable_list>;
變量初始化:variable_name = value;
定義常量:const
using System;
namespace HelloWorldApplication
{
class HelloWorld
{
string printStr = "Hello World";//成員變量
static void Main(string[] args)
{
int times = 3;//局部變量
}
}
}
Work2
1、輸出金字塔
基礎3 - 運算
運算語句 +-*/
運算語句2 sqrt aver
運算 - 臨時變量
Work3
1、輸入一個三位的整數,計算其每位數字的累加之和。例如:輸入整數123後,其每位數字累加之和爲6(1+2+3)
2、輸入三個整數a、b、c的值, 輸出表達式:b2-4ac的值。
3、輸入 直角三角形的兩直角邊a、b的長度,輸入其斜邊c的長度;
4、輸入三個雙精度數,求它們的平均值並保留此平均值小數點後一位數,對小數點後第二位小數進行四捨五入,最後輸出結果;
5、輸入長方形的長度、寬度,輸出其周長與面積。
6、輸入兩個實數,輸出其較小值。
7、若a的值小於100且大於等於0,請將以下選擇結構改寫成由switch語句構成的選擇結構:
if (a<30) m=1;
else if (a<40) m=2;
else if (a<50) m=3;
else if (a<60) m=4;
else m=5;
8、以反序方式輸出26個大寫字母(即 Z Y X … B A)
9、計算 1+3+32+33+…+310的值;
10、計算 1!+2!+3!+…+15!的值。
Unity快速做一個遊戲
3d橫版遊戲,具有移動、動畫播放、攻擊邏輯、敵人AI、血量
基礎4 - 判斷與循環
if語句 for語句 while語句,switch語句,do...while語句
基礎5 - 封裝
基礎6 - 方法
基礎7-可空類型
基礎8 - 數組,字符串,結構體,枚舉
基礎9 - 類 構造函數 析構函數 虛函數
基礎10 - 繼承
基礎11 - 多態性
基礎12 - 運算符重載
基礎13 - 接口
基礎14 - 命名空間
基礎15預處理器指令
基礎16正則表達式
基礎17異常處理
基礎18文件的輸入與輸出
高級
高級1-特性
高級2-反射
高級3-屬性
高級4-索引
高級5-委託
高級6-事件
高級7-集合
高級8-泛型
高級9-匿名函數
高級10不安全代碼
高級11多線程
數據結構
數組,map,hash,array,list,dictionary,
計算機組成原理
計算機碼 與或 系統運行原理 位移
圖形學
繪製窗口
緩衝區
D3D
設計模式
工廠模式
單元測試
Unity
10分鐘做一個簡單的Unity小遊戲 FPS遊戲快速做成
基礎學習
移動 input component monobehavic...