C#学习笔记---基础入门(一)
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#学习笔记---基础入门(一)的更多相关文章
- VS2013中Python学习笔记[基础入门]
前言 在上一节中简单的介绍了在VS2013中如何进行开发Hello World,在VS2013中进行搭建了环境http://www.cnblogs.com/aehyok/p/3986168.html. ...
- C#学习笔记---基础入门(三)
泛型<T> 使用泛型能够最大限度的重用代码/保护类型安全,提高性能 泛型成员因为类型的不确定性,不能使用算术运算符/比较运算符 类型参数可以有多个,可以是编译器能够识别的任何类型 类型参数 ...
- C#学习笔记---基础入门(二)
枚举 枚举是被命名的整型常数的集合:枚举类型的变量只有赋值后才能使用:不同枚举中的枚举值可以重名:可以自定义枚举值. enum Playstates { 跑, 跳,下滑,左转,右 ...
- jQuery学习笔记 - 基础知识扫盲入门篇
jQuery学习笔记 - 基础知识扫盲入门篇 2013-06-16 18:42 by 全新时代, 11 阅读, 0 评论, 收藏, 编辑 1.为什么要使用jQuery? 提供了强大的功能函数解决浏览器 ...
- 数论算法 剩余系相关 学习笔记 (基础回顾,(ex)CRT,(ex)lucas,(ex)BSGS,原根与指标入门,高次剩余,Miller_Rabin+Pollard_Rho)
注:转载本文须标明出处. 原文链接https://www.cnblogs.com/zhouzhendong/p/Number-theory.html 数论算法 剩余系相关 学习笔记 (基础回顾,(ex ...
- MongoDB学习笔记:快速入门
MongoDB学习笔记:快速入门 一.MongoDB 简介 MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统.在高负载的情况下,添加更多的节点,可以保证服务器性能.M ...
- python学习笔记--Django入门四 管理站点--二
接上一节 python学习笔记--Django入门四 管理站点 设置字段可选 编辑Book模块在email字段上加上blank=True,指定email字段为可选,代码如下: class Autho ...
- Python学习笔记基础篇——总览
Python初识与简介[开篇] Python学习笔记——基础篇[第一周]——变量与赋值.用户交互.条件判断.循环控制.数据类型.文本操作 Python学习笔记——基础篇[第二周]——解释器.字符串.列 ...
- WebSocket学习笔记——无痛入门
WebSocket学习笔记——无痛入门 标签: websocket 2014-04-09 22:05 4987人阅读 评论(1) 收藏 举报 分类: 物联网学习笔记(37) 版权声明:本文为博主原 ...
随机推荐
- SVN更改用户名和密码
关于SVN更换用户名和密码的问题,SVN是一个脚本的扩展软件,但是通过客户端更改用户名和密码的时候比较弱智,必须要经过一些操作之后才能出现更改用户名和密码的对话框. 主要的步骤就是“点击鼠标右键选择T ...
- 转:Nginx RTMP 功能研究
看点: 1. Nginx 配置信息与使用. (支持 rtmp与HLS配置) 2. 有ffmpeg 编译与使用, 命令行方式来测试验证客户端使用. 转自:http://blog.cs ...
- Servlet & JSP - Cookie
关于 Cookie 的内容,参考 HTTP - Cookie 机制 获取来自客户端的 cookie request.getCookies 方法可以获取来自 HTTP 请求的 cookie,返回的是 j ...
- HttpClient(4.3.5) - HTTP Authentication
HttpClient provides full support for authentication schemes defined by the HTTP standard specificati ...
- 日入过百优质消除手游数据分享—萌萌哒包子脸爱消除(游戏开发引擎:libgdx)
从2014年开始,消除游戏异常火爆,从消除小星星到腾讯的天天消除都赢得了海量用户.目前,各大市场上开心消消乐等游戏依旧火爆.消除游戏一直持续保持着女性和孩子的主流游戏地位.虽然市场上消除游戏种类很多, ...
- Linux下c函数dlopen实现加载动态库so文件代码举例
dlopen()是一个强大的库函数.该函数将打开一个新库,并把它装入内存.该函数主要用来加载库中的符号,这些符号在编译的时候是不知道的.这种机制使得在系统中添加或者删除一个模块时,都不需要重新编译了. ...
- 我的手机华为荣耀7,运行android程序不输出Log
解决方法:1 进入手机拨号界面2 输入*#*#2846579#*#*3 输入完毕后自动跳转到<工程菜单>界面4 依次选择后台设置-->LOG设置-->在此可以看见一些列关于LO ...
- CSS选择器介绍
一.元素选择器 E{...} 二.属性选择器 E[attr]{...}:指定该CSS对具有attr的元素起作用: E[attr=value]{...}::指定该CSS对具有attr的值为value的元 ...
- 使用Ctex总结1
使用Ctex应该是每一个做学术研究的人要学会掌握的. 它的基本结构: \documentclass[11pt,two side,a4paper]{cctart}%使用cctart可以让摘要变成中文,比 ...
- ASP.NET Cache的一些总结分享
最近我们的系统面临着严峻性能瓶颈问题,这是由于访问量增加,客户端在同一时间请求增加,这迫使我们要从两个方面解决这一问题,增加硬件和提高系统的性能. 1.1.1 摘要 最近我们的系统面临着严峻性能瓶颈问 ...