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) 版权声明:本文为博主原 ...
随机推荐
- sequence 作为序列插入值不是第一个
CREATE SEQUENCE seq_test INCREMENT BY 1 START WITH 1 ; 创建表时 或执行 ALTER SYSTEM SET deferred_segment_c ...
- C# 学习笔记01
想写一个app可以访问数据库,实现对数据库的查询,修改等,突然发现知识实在有限,故选择C#来实现此app. 使用简单的三层架构来作为此app的架构.表现层(UI).业务逻辑层(BLL).数据访问层(D ...
- C# WPF 连接数据库Sqlhelper类
从视频上学习到的WPF连接数据库的方法 需要配置一个 configuration 文件,包含 SQL instance 的相关信息 using System; using System.Collect ...
- Tomcat发生异常
The Apache Tomcat Native library which allows optimal performance in production environments was not ...
- 上传系列:jquery.upload.js
最近想做一个上传的总结,把自己用过的上传插件都写一写,哪天用到的时候就不用再一次的翻阅资料,现在页面上用到的上传插件,原理上都差不多,那我也就不再废话了,下面我主要记录一下几个比较常用的,由简到繁,这 ...
- Editplus中使用正则表达式压缩代码
快捷键ctrl+H打开查找与替换窗口,勾上使用正则表达式选项,查找项输入\t|^( )+,替换范围选当前文档,选择全部替换按钮,然后查找项在输入\n,再选择全部替换按钮. 大功告成!
- sql常识-INNER JOIN
SQL INNER JOIN 关键字 在表中存在至少一个匹配时,INNER JOIN 关键字返回行. INNER JOIN 关键字语法 SELECT column_name(s) FROM table ...
- python学习day5--set、函数
1.set 无序,不重复序列 创建:与dict一样用{},区别在于dict内元素为键值对 se={"123","456,444"} print(type(se) ...
- C++ Iterator迭代器介绍及Iterator迭代器用法代码举例
C++ Iterator迭代器介绍 迭代器可被用来访问一个容器类的所包函的全部元素,其行为像一个指针.举一个例子,你可用一个迭代器来实现对vector容器中所含元素的遍历.有这么几种迭代器如下: 迭代 ...
- Cocos移植到Android-通过命令行交叉编译打包
当我们在Windows下使用Visual Studio开发好Win32平台的游戏程序后,我们需要把它们移植到不同的平台上.Cocos2d-x支持很多个平台,然而,我们不可能介绍全部平台的移植.我们总结 ...