昨天是周五太放鬆了,晚上沒有加班只顧著放鬆,玩了一晚上,今天又是睡了一上午,沒有學習。這下放鬆過分了沒有總結,也沒有完成任務。今天來總結一下昨天的學習成果。 昨天設計的資料庫今天老大點評了一下發現問題確實很多。比如用戶表和許可權表的拆分問題,是否應該拆分取決於許可權的使用頻率。使用頻率高時因該拆分。 對 ...
昨天是周五太放鬆了,晚上沒有加班只顧著放鬆,玩了一晚上,今天又是睡了一上午,沒有學習。這下放鬆過分了沒有總結,也沒有完成任務。今天來總結一下昨天的學習成果。
昨天設計的資料庫今天老大點評了一下發現問題確實很多。比如用戶表和許可權表的拆分問題,是否應該拆分取決於許可權的使用頻率。使用頻率高時因該拆分。
對C#源代碼執行過程的思考(不懂)
構造函數總在new一個對象之前執行。
P p=new p();
因為賦值運算符(=)是從右向左執行,先執行new p,這時候執行類P的構造函數,然後將值賦給p,將p存到記憶體中。
兩個變數的值交換(不使用第三個變數)
![](http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 7 namespace Test_20160421 8 { 9 class Program 10 { 11 static void Main(string[] args) 12 { 13 int a = 10;int b = 21; 14 a = a + b; 15 b = a - b; 16 a = a - b; 17 //change(ref a,ref b); 18 Console.WriteLine("a={0},b={1}",a,b); 19 Console.ReadKey(); 20 } 21 #region 自定義方法 22 /// <summary> 23 /// 自定義交換方法 24 /// </summary> 25 /// <param name="a">第一個出入的變數</param> 26 /// <param name="b">第二個出入的變數</param> 27 private static void change( ref int a,ref int b) 28 { 29 a = a + b; 30 b = a - b; 31 a = a - b; 32 } 33 #endregion 34 } 35 }View Code
使用ref引用傳遞
或者直接用數學計算交換兩個int 型的值
使用ref是引用傳遞,傳入的是a和b的地址在方法中對值得修改會影響a和b的值
不使用ref是值傳遞,在棧里右新建了一個a和一個b(作用域為方法內),將main函數中a,b的值賦給方法內的a和b;方法中只是對方法內的a和b操作沒有影響到main函數中的a和b的值