我的第二个C#程序
看来每个post是有长度限制的。上次有一段没发出来。
可选变量
直接加入一个默认值就行了,这个默认值一定得是Value type,不可以和ref, out共用。
public int add_one(int x = 23)
{
return x + 1;
}
打完这个分割线就更爱markdown了。
Var 变量类型
Var在C#里面是直接让编译器去推断变量的类型。如果编译器能推断的话,那么这个var事实上还是会变成一个静态的类型。
例如:
var y = new System.Text.StringBuilder();
Console.WriteLine(y.GetType()); // System.Text.StringBuilder
var x = 5;
x = "Hello"; // Compile time error, x is int
运算符的优先级?
这个还是免了吧,直接用括号多爽。
循环的语法糖
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace HelloCSharp
{
class Program
{
static void Main(string[] args)
{
for (int i = 0, prev_Fib = 1, cur_Fib = 1 ; i < 10; i++)
// The initialization clause can do more.
{
Console.WriteLine(prev_Fib);
int newFib = prev_Fib + cur_Fib;
prev_Fib = cur_Fib; cur_Fib = newFib;
}
// And this one won't work, because we exited the scope of for loop.
Console.WriteLine(prev_Fib); //!!!!
Console.ReadLine();
}
}
}
break, continue, goto
continue以前没怎么用过,作用就是在一个循环里面直接跳过后面的语句,直接到下一个变量,像是筛选不合格一样的。
Python可能会这么写:
print i for i in range(0, 10) if i %2 != 0
C#:
for (int i = 0; i < 10; i ++)
{
if ((x % 2) == 0)
continue;
Console.WriteLine(i);
}
Written with StackEdit.
No comments:
Post a Comment