C#中的变量:

一个变量就是存储区(内存)中的一个存储单元。

变量声明赋值:int money =1000;/int money;money=1000; 输出:console.writeLine(money);console.ReadLine(money);

变量的命名规则:即标识符的命名规则: 字母,数字,下划线(不能以数字开头,区分大小写)

命名规范:简短且能清楚的表明变量的作用,通常第一个单词的首字母小写,其后单词的首字母大写,例如myScore

变量的作用域(生命周期):类体中的成员变量(类中的全局变量)-》1.static int x=90;//静态变量  2 .int x=90;//实例变量

静态方法中调用静态变量可以根据变量名(类名.变量名)直接调用,而想调用实例变量必须经过对象名调用。

class Program
{
int aa=;//实例变量
static int bb=;//静态变量
static void Main(string[] args)
{
Program pro=new Program();
Console.WriteLine(pro.aa);
Console.WriteLine(bb);
} }

方法中的局部变量 :只限制于方法内可以调用。

数据类型:

值类型:整数/实数/字符/布尔    结构/枚举  
-------值类型直接存储值(对一个对象进行修改,不会改动其他对象值)

八进制(以0开头,其他为0-8)十六进制(以0X开头);C#默认小数是double类型,所以使用float类型时后面加f.

特点:值类型表示实际数据,只是将值存在内存中,值类型都存储在栈(固定空间)中。

引用类型:类/接口/数组/委托  一般会用到New关键字,string类型是引用类型

特点:引用类型表示指向数据的指针或引用,包含内存堆(动态空间)中对象的地址,为NULL,表示未引用任何对象。

类型转换:隐式类型转换:低精度向高精度转换,可以隐式转换,或者两者可兼容,例如int与double

显式转换/强制转换:

int b=(int)10.2;//(类型名)表达式
double a=;
int c=(int)a; double a=10;
int c=Convert.ToInt32(a);//Convert.To类型名(表达式)经常用
double a=10;
double c=double.Parse(a.ToString());//.Parse类型名(表达式必须为String型) string str="10";
int c=Int32.Parse(str);

值类型转换为->引用类型 称为装箱

引用类型转换为->值类型 称为拆箱

int i =10;//值类型
object obj=i;//装箱操作
int j=(int)obj;//拆箱操作

 枚举类型:

枚举是一组描述性的名称

枚举定义一组有限的值,不能包含方法

对可能的值进行约束

枚举允许描述性名称表示整数值

语法:enum 枚举名{值1,值2...}

public enum Mrkj
{
CS=,Java=,C=
}
在main方法中输出
console.WriteLine((int)Mrkj.CS);

枚举使用:日期相关程序,编写用户权限

常量:

静态常量:const  不能被修改 ,与static变量相同,可以直接通过类名调用。

动态常量:readonly  在构造函数中可以被修改

C#中的表达式与运算符

表达式由操作数与运算符构成

运算符:+ - * / %

自增自减运算符:b=a++(先取值,后自增);b=--a(先自减,后取值);
赋值运算符=:需要注意赋值左右两边值类型的隐式转换问题。

关系(比较)运算符:>=   <=   >  <  ==  !==

逻辑运算符:非!  与&&   或 ||  (如果使用&或者| ,效率没有&&,||效率高)

位运算符:按位与运算 5&4=4.因为5=00101 ,4=00100,按位与得到00100

按位或运算 3|6=7.因为3=00011 ,6=00110,按位或得到00111

按位取反运算 ~7取反为-8.因为7=00000111 ,按位取反得到11111000

按位异或运算 10^3=9.因为10=001010 ,3=000011,按位异或得到001001

移位运算:左移位<<右移位>>    左移几位就是*2的几次方。  右移几位就是除以2的几次方。

特殊运算符:

运算符的优先级:下图优先级从上到下,由高到低。(结合表示同级从右向左,从左向右)

C#中的字符与字符串

字符 char(单个字符) 用单引号 ,例如char a=‘a’;可以通过调用char类下的方法进行一些操作,具体通过help查看其相关方法

转义字符:“\”将原有字符的意义改变

转义符 说明
\n 回车换行
\t 横向跳到下一制表位置
\" 双引号
\b 退格
\r 回车
\f 换页
\\ 反斜线符
\' 单引号符

如果想输出目录,例如“C:\windows\app\sad\haha”,有很多反斜线,则可以使用@方法,即@“C:\windows\app\sad\haha”。也可正常输出。

字符串  string  用双引号

string str1=null;//null与空字符串不是同一概念。null不推荐

string str2="";

连接多个字符串使用“+”运算符

比较字符串:if(name==""){}   if(name.Equals(string.Empty)){}

string.Compare(str1,str2)        str1.CompareTo(str2)  这两种可以比较两个字符串的值,但如果是英文或汉字,则比较他们在字典中的位置。如相等返回0,不等返回1.或-1

格式化字符串:string myString=string.Format("{0}乘以{1}等于{2}“,2,3,2*3);//输出结果为2乘以3等于6

格式化日期格式:

插入字符串:在字符串的指定位置插入子字符串

                 语法  string Insert(int startIndex ,string value)

填充字符串:在字符串的左侧或者右侧进行字符填充(只能填充一个单字符)

语法  string PadLeft(int totalWidth,char paddingchar)

string PadRight(int totalWidth,char paddingchar)

删除字符串:从一个字符串的指定位置开始,删除指定数量的字符

语法 string Remove(int startIndex,int count)

复制字符串:Copy方法----全部复制 (静态方法,通过类名调用)

CopyTo方法----部分复制(非静态方法,通过对象名调用)

string str="helloworld";
string str1=string.Copy(str);//完全复制 char[] ch1=new char[];
str.CopyTo(,ch1,,);//部分复制,参数代表含义为从str的第6个字符复制5个字符到ch1数组中,从第三个位置开始粘贴

替换字符串:将字符串中的某个字符或者字符串替换成其他的字符或字符串

语法 string Replace(char OldChar,char NewChar)

string Replace(string OldValue,string NewValue)

StringBuilder类(对原有对象进行操作,不会生成新的对象)

其存在System.Text命名空间中

常用的方法:Append//AppendFormat//Insert//Remove//Replace

StringBuilder sbuilder=new StringBuilder("MR");
sbuilder.Append("soft");
sbuilder.AppendFormat("{0:C}",);
sbuilder.Insert(,"mr");
sbuilder.Remove(,);
sbuilder.Replace("soft","SOFT");//输出MRSOFT¥365.00

StringBuilder 与String的区别在于String Builder效率更高

C#中的条件判断语句

if else

if  else if

switch case

C#中的循环控制语句

while语句

do while语句

for循环语句

foreach语句 用于枚举一个集合的元素,并对该集合中的每个元素执行一次嵌入语句。

using System.Collection;

在main方法中
ArrayList list=new ArrayList();
list.Add("a");
list.Add("b");
list.Add("c");
foreach (string str in list)
{
Console.WriteLine(str);
}
Console.ReadLine();

C#中的跳转语句

break;  用于退出最内层的循环或者退出一个switch语句

contine;  用于终止当前循环,并开始下一次循环,只能用于while  /do while/for/foreach 中

goto  用于将控制转移到由标签标记的语句,goto case 【参数表达式】;goto default;goto【标签】;

return;返回语句 返回与方法相同的数据类型

数组

一维数组

声明初始化数组 int[] numbers = new int[5];

float[] scores = new float[3]{1.1f,2.4f,5.6f};

string[] names = new string[10];//使用new是给数组动态赋值。

string[] s={"laowang","laozhang","laoli"};//给数组进行静态赋值Tips:CW+tab+tab---Console.WriteLine();

for+tab+tab,----快捷键输出for循环

二维数组

int[,] numbers =new int[2,3];//声明一个2行3列的数组,初始值为0.

int[,] numbers =new int[2,3]{

            {1,2,3},

{4,5,6}

};

遍历二维数组除了使用双层遍历for循环,还可以用更简单的foreach方法 , 当我们不需要对循环本身进行控制,  推荐使用foreach。             foreach (int num in numbers){}

C#学习笔记---基础入门(一)的更多相关文章

  1. VS2013中Python学习笔记[基础入门]

    前言 在上一节中简单的介绍了在VS2013中如何进行开发Hello World,在VS2013中进行搭建了环境http://www.cnblogs.com/aehyok/p/3986168.html. ...

  2. C#学习笔记---基础入门(三)

    泛型<T> 使用泛型能够最大限度的重用代码/保护类型安全,提高性能 泛型成员因为类型的不确定性,不能使用算术运算符/比较运算符 类型参数可以有多个,可以是编译器能够识别的任何类型 类型参数 ...

  3. C#学习笔记---基础入门(二)

    枚举 枚举是被命名的整型常数的集合:枚举类型的变量只有赋值后才能使用:不同枚举中的枚举值可以重名:可以自定义枚举值. enum Playstates {            跑, 跳,下滑,左转,右 ...

  4. jQuery学习笔记 - 基础知识扫盲入门篇

    jQuery学习笔记 - 基础知识扫盲入门篇 2013-06-16 18:42 by 全新时代, 11 阅读, 0 评论, 收藏, 编辑 1.为什么要使用jQuery? 提供了强大的功能函数解决浏览器 ...

  5. 数论算法 剩余系相关 学习笔记 (基础回顾,(ex)CRT,(ex)lucas,(ex)BSGS,原根与指标入门,高次剩余,Miller_Rabin+Pollard_Rho)

    注:转载本文须标明出处. 原文链接https://www.cnblogs.com/zhouzhendong/p/Number-theory.html 数论算法 剩余系相关 学习笔记 (基础回顾,(ex ...

  6. MongoDB学习笔记:快速入门

    MongoDB学习笔记:快速入门   一.MongoDB 简介 MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统.在高负载的情况下,添加更多的节点,可以保证服务器性能.M ...

  7. python学习笔记--Django入门四 管理站点--二

    接上一节  python学习笔记--Django入门四 管理站点 设置字段可选 编辑Book模块在email字段上加上blank=True,指定email字段为可选,代码如下: class Autho ...

  8. Python学习笔记基础篇——总览

    Python初识与简介[开篇] Python学习笔记——基础篇[第一周]——变量与赋值.用户交互.条件判断.循环控制.数据类型.文本操作 Python学习笔记——基础篇[第二周]——解释器.字符串.列 ...

  9. WebSocket学习笔记——无痛入门

    WebSocket学习笔记——无痛入门 标签: websocket 2014-04-09 22:05 4987人阅读 评论(1) 收藏 举报  分类: 物联网学习笔记(37)  版权声明:本文为博主原 ...

随机推荐

  1. SVN更改用户名和密码

    关于SVN更换用户名和密码的问题,SVN是一个脚本的扩展软件,但是通过客户端更改用户名和密码的时候比较弱智,必须要经过一些操作之后才能出现更改用户名和密码的对话框. 主要的步骤就是“点击鼠标右键选择T ...

  2. 转:Nginx RTMP 功能研究

    看点: 1.    Nginx 配置信息与使用.  (支持 rtmp与HLS配置) 2.    有ffmpeg 编译与使用,    命令行方式来测试验证客户端使用. 转自:http://blog.cs ...

  3. Servlet & JSP - Cookie

    关于 Cookie 的内容,参考 HTTP - Cookie 机制 获取来自客户端的 cookie request.getCookies 方法可以获取来自 HTTP 请求的 cookie,返回的是 j ...

  4. HttpClient(4.3.5) - HTTP Authentication

    HttpClient provides full support for authentication schemes defined by the HTTP standard specificati ...

  5. 日入过百优质消除手游数据分享—萌萌哒包子脸爱消除(游戏开发引擎:libgdx)

    从2014年开始,消除游戏异常火爆,从消除小星星到腾讯的天天消除都赢得了海量用户.目前,各大市场上开心消消乐等游戏依旧火爆.消除游戏一直持续保持着女性和孩子的主流游戏地位.虽然市场上消除游戏种类很多, ...

  6. Linux下c函数dlopen实现加载动态库so文件代码举例

    dlopen()是一个强大的库函数.该函数将打开一个新库,并把它装入内存.该函数主要用来加载库中的符号,这些符号在编译的时候是不知道的.这种机制使得在系统中添加或者删除一个模块时,都不需要重新编译了. ...

  7. 我的手机华为荣耀7,运行android程序不输出Log

    解决方法:1 进入手机拨号界面2 输入*#*#2846579#*#*3 输入完毕后自动跳转到<工程菜单>界面4 依次选择后台设置-->LOG设置-->在此可以看见一些列关于LO ...

  8. CSS选择器介绍

    一.元素选择器 E{...} 二.属性选择器 E[attr]{...}:指定该CSS对具有attr的元素起作用: E[attr=value]{...}::指定该CSS对具有attr的值为value的元 ...

  9. 使用Ctex总结1

    使用Ctex应该是每一个做学术研究的人要学会掌握的. 它的基本结构: \documentclass[11pt,two side,a4paper]{cctart}%使用cctart可以让摘要变成中文,比 ...

  10. ASP.NET Cache的一些总结分享

    最近我们的系统面临着严峻性能瓶颈问题,这是由于访问量增加,客户端在同一时间请求增加,这迫使我们要从两个方面解决这一问题,增加硬件和提高系统的性能. 1.1.1 摘要 最近我们的系统面临着严峻性能瓶颈问 ...