更多相关文章,见本人的个人主页:zhongxiewei.com

变量

注释方式:// 注释在这里/* 注释在这里 */

整形变量的类型:

Type Alias for Allowed Values
sbyte System.SByte Integer between -2^7 and 2^7-1
byte System.Byte Integer between 0 and 2^8-1
short System.Int16 Integer between -2^15 and 2^15-1
ushort System.UInt16 Integer between 0 and 2^16-1
int System.Int32 Integer between -2^31 and 2^31-1
uint System.UInt32 Integer between 0 and 2^32-1
long System.Int64 Integer between -2^63 and 2^63-1
ulong System.UInt64 Integer between 0 and 2^64-1

浮点型:

Type Alias for Approx Min Value Approx Max Value
float System.Single 1.5x10-45 3.4x1038
double System.Double 5.0x10-324 1.7x10308
decimal System.Decimal 1.0x10-28 7.9x1028

其他简单类型:

Type Alias for Allowed Values
char System.Char Single Unicode char, between 0 and 65535
bool System.Boolean true or false
string System.String a sequence of characters

关于变量命名:

对于简单的变量可以采用camelCase格式,如:firstName,对于一些高级的变量可以采用PascalCase格式,如LastName,这是微软建议的。

字面常量:

true, false, 100, 100U, 100L, 100UL, 1.5F, 1.5, 1.5M, 'a', "hello"

verbatim, 逐字的常量:

"C:\\Temp\\mydir\\myfile.doc"等同于@"C:\Temp\mydir\myfile.doc",另外可以跨行输入字符串,如:

@"first line
second line
third line"

关于变量的使用,在很多变成语言中都有一个要求,就是在使用前必须进行初始化

表达式

操作符与C语言类似

操作符的顺序:

Precedence Operators
Highest ++, --(used as prefixes); (), +, -(unary), !, ~
  *,/,%
  +,-
  <<, >>
  <,>,<=,>=
  ==,!=
  &
  ^
  |
  &&
  ||
  =,*=,/=,%=,+=,-=,<<=,>>=,&=,^=,|=
Lowest ++,--(used as suffixes)

控制流

允许使用goto语句。条件表达式返回的类型必须是bool。如: if (10) return false; // 这句话是不能通过编译的

在使用switch-case的时候,有一点和c++的用法是不同的,如:

switch(testVar)
{case var1:// execute code...         // 如果这里没有break语句的话,编译器是不能通过的,而在c++中可以,// 如果想要让它继续执行下面的case,必须加上“goto case var2;”语句// 当然如果case var1下面没有执行语句的话,也是合理的case var2:// execute code
        ...break;default:break;
}

循环语句和C++类似

更多变量相关

类型转换

Type Can safely be converted to
byte short,ushort,int,uint,long,ulong,float,double,decimal
sbyte short,int,long,float,double,decimal
short int,long,float,double,decimal
ushort int,uint,long,ulong,float,double,decimal
int long,float,double,decimal
uint long,ulong,float,double,decimal
long float,double,decimal
ulong float,double,decimal
float double
char ushort,int,uint,long,ulong,float,double,decimal

除了以上的隐式转换之外,还存在显示转换。为了防止溢出发生,可以用checked(expression)表达式进行处理,如:

byte destVar;
short srcVar = 281;
destVar = checked((byte)srcVar);

或是在项目的选项中,直接开启默认转换检测机制。如下图所示:

一些复杂的变量类型

Enumeration

定义一个enum,如下:

enum orientation : byte // byte能够被其他的整型类型,如int,long等替换
{north,south,east,west
}

那么声明一个枚举类型采用的方法为:orientation myDirect = orientation.north;;直接输出myDirect的结果为:north。想要输出它所表示的byte类型的具体数值,就必须采用显示的类型转换:(byte)myDirect

也可以将“north”字符串转换成枚举类型,采用的方式稍微复杂,具体如下:

string myStr = "north";
orientation myDirect = (orientation)Enum.Parse(typeof(orientation), myStr);

struct

struct类型和C++不同的是,变量的类型默认不是public的。而是private的。

Arrays

数组的声明方式如下:<baseType>[] <name>;,如:int[] myIntArray = {1,2,3};int[] myIntArray = new int[5];。不能够采用如下的方式进行声明:<baseType> <name>[];

多维数组的语法结构也有其特殊性。声明方式如下:<baseType>[,] <name>;,如:double[,] hillHeight = new double[3,4];。在多维数组中各个数据的排序顺序为行优先排序,如:

double[,] hillHeight = {{1,2,3,4}, {2,3,4,5}, {3,4,5,6}};
foreach (double height in hillHeight)
{Console.WriteLine("{0}", height);
}
// 输出结果依次为:
// [0,0]
// [0,1]
// ...

在当每一行的数据量不相等的时候,可以使用Arrays of Arrays。在使用数组的数组的时候,不能像多维数组一样进行使用,如:

int[][] jagged;
jagged = new int[3][4]; // 在编译的过程中会出现’cannot implicitly convert type 'int' to 'int[][]'的错误

有两种方式可以用来实现声明。如:

jagged = new int[2][];
jagged[0] = new int[3];
jagged[1] = new int[4];// or like below
jagged = {new int[] {1,2,3}, new int[] {1}, new int[] {4,5,6,7}};

在对其进行遍历的时候也需要注意,不能采用如下的方式:

foreach (int val in jagged) // 出现编译错误,不能将int[]转换成int
{Console.WriteLine(val);
}// 于是应该更改为如下方式:foreach (int[] valArray in jagged)
{foreach (int val in valArray){Console.WriteLine(val);}
}

对String的操作

string str=" hello world ";常见的有: str.Trim();,str.TrimStart(),str.TrimEnd(),str.ToLower(),str.PadLeft(10, '-'),str.Split({' '})

练习

  1. 逆序输出字符串,递归的方式完成
public static void printReverse(string str, int i)
{if (i < str.Length){printReverse(str, i + 1);Console.Write(str.Substring(i, 1));}return;
}

 

转载于:https://www.cnblogs.com/grass-and-moon/p/4046668.html

基本概念----Beginning Visual C#相关推荐

  1. 读《Ivor Horton's beginning Visual C++ 2010》有感

    最近花了5天左右的时间读了[1],并且按照书中的介绍,一步一步地实现了书中所有的代码.我对Visual C++.MFC..Net下C++项目编程有了更深刻的理解,对于实际项目的实现过程有了一次深刻的体 ...

  2. Ivor Horton‘s Beginning Visual C++ 2013 - Visual C++ 2013 入门经典

    Ivor Horton's Beginning Visual C++ 2013 - Visual C++ 2013 入门经典 Ivor Horton's Beginning Visual C++ 20 ...

  3. Ivor Horton's Beginning Visual C++ 2010

    Ivor Horton's Beginning Visual C++ 2010 转载于:https://www.cnblogs.com/gavinhughhu/archive/2010/05/12/1 ...

  4. Ivor Horton's Beginning Visual C++ 2008

    版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出版.作者信息和本声明.否则将追究法律责任. http://blog.csdn.net/topmvp - topmvp Proudly ...

  5. Visual studio 2005如何实现源码管理

    转自CSDN Visual studio 2005如何实现源码管理(Visual Studio .Net团队开发) 目录: 〇. 摘要 一. 开发前的准备 二. 创建空的SourceSafe数据库 三 ...

  6. 面向 Visual Studio 开发者的 Git 内部源代码

    在我撰写的 Git DevOps 文章 (msdn.com/magazine/mt767697) 中,我介绍了 Git 版本控制系统 (VCS) 与可能已经很熟悉的集中式 VCS 的区别.然后,我演示 ...

  7. Visual Studio .Net团队开发[转]

    一. 开发前的准备 1. 在装有Windows 2000或者Windows XP Professional的机器上安装.net Framework SDK.Visual Studio.Net.Visu ...

  8. Visual Basic十年风云

    Visual Basic十年风云 Visual Basic十年风云 我从来没有想到过,撰写这篇文章需要十年的光阴 有时我自清晨的睡梦中醒来,望着窗外高楼间透露的微稀曙光 耳畔都不免响起那些岁月烙印后的 ...

  9. Microsoft Visual SourceSafe 使用说明详解

    开发前的准备 1. 在装有Windows 2000或者Windows XP Professional的机器上安装.Net Framework SDK.Visual Studio.Net.Visual ...

最新文章

  1. 2016最新cocoapods版本更新,以及多个版本的问题
  2. PHP生成Mysql数据字典
  3. SAP Spartacus里使用Observable访问Component数据
  4. 梁鑫:重构 - 在美股行情系统的实践
  5. Android 播放SD卡视频 Demo
  6. java-io流入门
  7. adb shell 命令详解
  8. ★一张图弄明白从零维到十维
  9. SQL Serevr 2012 安装教程
  10. APISpace 空号检测API接口 免费好用
  11. roboware studio教程_2.2.RoboWare Studio安装及使用
  12. 笔记本电脑配备支架有什么作用吗
  13. Matlab绘制图像(plot函数)
  14. mysql 黑名单_51ak带你看MYSQL5.7源码4:实现SQL黑名单功能
  15. sudo、sudo -s、sudo -i、su 区别
  16. 开源集市@中关村|气氛热烈,完美收官!
  17. 输入一个大于3的整数n,判定它是否为素数。例题5.9
  18. HMM隐马尔可夫模型进行中文文本分词
  19. 重装系统服务器不识别u盘,重装系统时BIOS不识别U盘启动盘如何解决?
  20. Visual Studio 2010 SP1 安装失败

热门文章

  1. UVa1587 - Box
  2. ajax请求url最大长度,针对较长的URL的400BAD请求(ajax)
  3. php ai,php能做AI智能吗
  4. php删除数据库数据操作日志文件,MSSQL清空日志删除日志文件
  5. hdu 4417 树状数组查询区间不是1到n时需要转换,例[0,5]变成[1,6]
  6. tsd3dmapper软件使用方法_mybatis-plus的使用 ------ 入门
  7. 递归算法设计 —— 选择排序和冒泡排序
  8. Codeforces Round #460 (Div. 2): D. Substring(有向图)
  9. 有长度要求的区间最大值
  10. 玲珑杯round11-E:萌萌哒的第五题