【DotNet 技能系列】1. C#基础知识笔记

变量与类型

C#是强类型的语言,因此每个变量必须声明类型。在C# 新版本里面也可以用Var来声明。

 

从 Visual C# 3.0 开始,在方法范围中声明的变量可以具有隐式类型 var。 隐式类型的本地变量是强类型变量(就好像您已经声明该类型一样),但由编译器确定类型。 下面的两个 i 声明在功能上是等效的:

var number = 10; // implicity typed
   int number2 = 10; // explicity typed

 

变量的类型类别包括数值类型和引用类型,数值类型包括整型类型和非整型类型。

整型根据位数的不同,分为不同的具体类型,包含byte, short, int 和long等

非整型包括char,string等

 

变量声明方式

变量必须先声明,再赋值,最后使用。

变量的名称一定要有含义,而不能i,j,k这样!注意的是有含义,不是像C中的加Type类型做变量前缀。

1. 先声明、再赋值。

int num; num =3; // 这种方式不规范,容易引发问题。要避免这种方法

2. 定义变量时候直接赋值.

int num = 3;

3. 一次声明多个变量,变量之间用逗号分开.

int num1=20, num2=30, num3=40;  // 而不是int i,j = 20,30(python 方式)

变量声明规则- 只能以字母,_和@开头,因此不能以$开头

C#变量区别大小写!

char A = 'A';
            char a = 'a';  // A, a 不同的变量

 

 

变量命名规范

1. Camel 命名方法(驼峰): 首个单词的首字母小写,其他单词的首字母大写

2. Pascal 命名方法:每个单词的首字母都大写

 

C#语言实用Camel方法命名变量或者参数,而命名空间和类使用Pascal命名方法.

补充:还有一种C或者C++常见的命名方法叫匈牙利命名方法(这种方法不推荐在C#以及其他编程语言中).

不过匈牙利命名方法中的应用型命名方法在广泛应用!特别是对于有三个以上的单词组成的变量,这种方法很常用.

参考:

这才是真正的“匈牙利命名法”

匈牙利命名法的衰落和建议

 

C# Int

C# Int中的整型的范围一定要注意。

范围:-2,147,483,648 到 2,147,483,647

大小:有符号的32位整数

http://msdn.microsoft.com/zh-cn/library/5kzh1b5w.aspx

 

比如一个例子,C# int能存储手机号码吗?答案:不能,因为手机的长度超出了int的范围

C# Char

在C#中Char存储的是一个字符,要注意的是C# 是Unicode编码,所以Char是可以存储一个中文字符

class Program
    {
        static void Main(string[] args)
        {
            char firstname = '';
            Console.WriteLine(firstname);
            Console.ReadKey();
        }
    }

 

在给char类型的变量赋值的时候需要使用单引号’.

 

不过需要注意的是由于不同的系统对于Char类型的字符的实现是不一样的,所以Char对应的长度具体是几个字节需要根据系统来确定.比如SQL Server中的char字符是只占一个字节的.

 

C#中的Char的定义对于那些了解过C语言的人,但是又不是很精通的来说要特别注意。特别是对知识死记的或者没有运用过的人,孤立认为Char就占一个字节,而实际上这个对于不同过的语言定义是不一样的,要特别注意。

 

C# String

字符串定义:把多个字符连接起来.

 

String Length 为字符串的长度也就是字符的个数.

 

string word = "我是IT男";
Console.WriteLine(word.Length); // 5

 

Float, Double 和Decimal

 

float是32位的浮点数,double是64为的浮点数。decimal是128位数据类型,一般用来储存金钱。这里要注意。虽然decimal的位数多,但是范围比double小,甚至比float小,但是精度最高。

 

另外需要注意的是C#中直接写一个带小数点的实数默认类型为double类型,必须使用m/M来定义decimal类型。f/d/m 分别用来声明不同的浮点数类型

float salary = 7600.33;  // 这里如果不加f,连编译都通不过
decimal salary = 7600.33; // 这里也编译通不过,一定要加上m

 

类型转换

类型转换包括隐式转换和显式强制转换以及帮助转换函数、转换类。

隐式转换:

float number = 10;  // 只有在从低到高转换才能进行

强制转换:

int num = (int)3.14; // 不同精度的数值转换可能丢失精度

帮助转换函数:

int.Parse("123”); // 如果解释的不是数值或者超出范围,编译不会出现错误吗,但是运行时就会抛出异常FormatException或者OverflowException

练习

string name = "某某IT男";
          int age = 33;
          char sex = '';
          string enSex = "men"; // 注意要用双引号
          short sexFlag = 1;  // 1 表示男, 2 表示女

          Console.WriteLine(
              "My name is {0}" +  
               " age is {1}", 
               name,
               age);
posted @ 2012-08-27 20:40  richardzeng  阅读(395)  评论(0编辑  收藏  举报