.net基础语法

c#中的命名空间

namespace关键字
作用:更好的分类和组织程序代码
特点:非常类似我们的省、市、区县等的划分
使用:一个命名空间可以包含一个或多个类

命名空间的分类
系统定义:.NET类库中已经定义好,可直接“引用”后使用
用户定义:为了更好的组织程序,由程序员添加

using关键字
用来引用其他命名空间
不同项目,系统自动添加不同的命名空间

c#中的Main方法

作用:程序入口,从这里开始运行程序
要求:一个程序只能有一个Main方法(),首字母大写、返回值可以为void或者int、命令行参数是可选的

Main()方法的形式
形式1:static void Main(string[ args]){}
形式2:static int Min(string[] args)
形式3:static void Main(){}
形式4:static int Main(){}

c#中的注释

作用:用来说明代码的作用,帮助程序员理解代码
形式:单行注释、多行注释。

c#中代码折叠器region

作用:将多行代码折叠,使得代码的可读性增强,容易查找
要求:必须成对使用

C# 中Dictionary 字典

必须包含名空间System.Collection.Generic
Dictionary里面的每一个元素都是一个键值对(由二个元素组成:键和值)
键必须是唯一的,而值不需要唯一的
键和值都可以是任何类型(比如:string, int, 自定义类型,等等)
通过一个键读取一个值的时间是接近O(1)
键值对之间的偏序可以不定义

使用方法:Dictionary<string, string> openWith = new Dictionary<string, string>();

MSDN

MSDN是微软为开发人员提供的开发大全
可以在安装visual studio的同时安装,也可以直接联网使用

内存分配与变量定义方法

什么是变量?
概念:表示一个数据存储空间,内存地址的别名
作用:内存地址是一串十六进制数,非常不好记忆,通过变量可以快速找到数据。

变量的三要素
变量类型:规定变量的数据类型。
变量名:有意义、好记忆。

数据类型
数据按照不同的分类存储
作用:为了更好的管理内存数据、不同的类型的数据存放在不同的内存块中
特点:不同的数据类型占用的存储空间大小不一样

数据类型划分

数据类型
数值 非数值
整数 、小数 string bool DateTime

数据类型
int(整型) 用于存储整数
double (浮点类型)用于存储小数
string(字符类型)用于存储一串字符
bool(布尔类型)用于表示一个条件是否成立,只有2个值:true/false
DateTime (时间类型)用于存储日期和时间
在这里插入图片描述
c#中变量的命名

变量名的组成要求
组成:英文字母(A-Z、a-z)、数字(0,9)、下划线(_),除此之外不能包含有其他字符
开头:只能以字母或下划线开头
禁用:c#关键字(int 、this、class)特别注意:"$"符号在c#中也不能使用

变量命名规范
要有意义:尽量用对应的英文命名,比如年龄用age,除循环变量外、尽量不用单个字符
严格区大小写:age和Age是两个不同的变量
Camel命名:当使用一个或多个单词组成变量名时,要使用Camel命令法,即第一个单词的首字母小写,其他收字母大写。

常量的定义方法
const 数据类型 常量名称 =‘值’;
常量必须在定义时初始化
常量的名字要全部大写
常量命名要偶遇意义

常量使用时机
经常用到并且其值不变的变量,可以定义为常量

对象的数据类型

基本数据类型 int double bool
引用数据类型 数组 对象 string

对象的销毁

对象的生存周期
对象在内存中不断的生生死死,具有生命周期
对象在内存中的状态
正在引用 程序正在使用的对象
游离状态 没有引用的对象,已经使用完毕但依旧占据空间
垃圾回收机制(GC)
.net 虚拟机特有的机制 自动运行 并检查对象的状态
发现对象不被引用时,会将其释放所占空间(销毁)
GC的使用大大减轻了程序员手动释放对象的操作,且程序运行稳定。

类型转换

众所周知,C#是一门强类型语言,对类型要求比较严格,但是在一定的条件下是可以相互转换的,如将int型数据转换成double型数据。C#允许使用两种转换方式:隐式转换和显式转换。详情自己百度

console类的使用

Consle.WriteLine();//相当于换行
Console.WriteLine(“要输出的内容”);//输出后换行
Console.Write(“要输出的内容”)//输出后不换行

switch与多重if比较
相同的点:都是用来处理分支条件结构
不同点:switch 只能处理等值条件判断的情况,而且条件必须是整型变量或字符型变量;多重if没有switch选择结构的限制,特别适合某个变量处于某个连续区间的情况。

属性和字段比较

字段(成员变量)
字段主要是为类的内部做数据交互使用,字段一般是private的
我们即可以给字段赋值,也可以获取字段的值。
当字段需要为外部提供数据时,请将字段封装为属性,而不是使用共有字段,这是面向对象设计思想所提倡的。

属性
属性一般向外提供数据访问,主要是用来描述对象的静态特征,所以属性一般是public的
属性可以根据需要设置为只读,只写属性,提高数据安全性。
属性内部可以添加任何我们需要的业务逻辑,从而避免非法数据。度娘

枚举定义的规范

访问修饰符 enum 枚举名{值1,值2}

枚举的作用
表示一组描述性的名称,名称可以是对应具体的"整数值"
定义一组有限的值

注意的问题
不能包含方法,一般都定义在类的外部

public enum Genders
{
Male=0,Female=1
}
static void Min(string[] args)
{
Genders.gender=Genders.Male;//定义性别枚举
Console.WriteLine((int)gender);//枚举转换成整型
Console.ReadLine();
}

linq 语言集成查询

特点:集成与.net语言(c#、VB等)的查询机制

linq支持的数据源 objects、Entities、DateSet、SQL、XML、其他
linq 查询语句结构

from 变量
in 数据源对象
where 条件表达式
orderby 排序列 [ascending|descending]
group 变量 by 分组条件
into 临时标识符
select 选择列

linq的查询语句和查询方法
所有的LINQ查询都可转换成查询方法,但是有的查询方法不能用LINQ查询表达式表示
分类 主要方法 对应的查询关键字
投影 Select()、SelectMany() select
筛选 Where() where
排序 OrderBy()、OrderByDescending()等 orderby、ascending(升序)、descending(降序)
集合方法 Union()、Distinct()等
分组方法 GroupBy() group by
聚合方法 Average()、Count()、Max()、Min()、Sum()等
分区方法 Skip()、Take()等

查询语句和查询方法的选择
首选:一般优先使用LINQ查询语句(查询语句优势:直观、可读性高)
考虑:查询方法效率更高,无对应的LINQ查询语句写法时使用查询方法
经验:LINQ查询语句+查询方法搭配使用

equals
对于值类型来说 两者比较的都是”内容”是否相同,即 值 是否一样,很显然此时两者是划等号的。

对于引用类型来说,等号(==)比较的是两个变量的”引用” 是否一样,即是引用的”地址”是否相同。而对于equals来说仍然比较的是变量的 ”内容” 是否一样。

对于 p1==p2 比较的结果是false,这点是毫无疑问的,因为他俩是两个不同的变量,所以引用的地址也是不同的。但是对于p1.Equals(p2) 返回false,可能有人会产生疑问,p1 和p2的内容是相同的啊,为什么他俩的比较结果却是为false呢?。原因就在于在Equals是Object中的一个虚方法,而person类中没有对她进行重写,因此此时调用的仍是父类中的Equals方法。但是父类是无法知道你都有哪些成员字段的,因此返回的是false。

First()、FirstOrDefault()异同
相同点:都用于获取结果集中的第一个元素
不同点:如果序列中不包含任何元素,前者返回null,后者返回默认值

Single()、SingleOrDefault()异同
相同点:都用于获取结果中的唯一元素。
不同点:如果序列中不包含任何元素,前者返回null,后者返回默认值。
特别注意:当数据源中包含多个元素时,这个两个方法会产生异常。

linq to Entities查询原理
使用linq查询Entities数据,实际上是将DbContext对象包含的各种集合对象作为数据源
集合对象所对应的类型为Dbset或Icollection,二者都支持LINQ操作

LINQ to Entities 和linq to Objects的异同
相同:查询表达式语法。
不同:执行原理
1、linq to Objects始终是一个CLR对象,Linq to Objects始终在CLR中进行运算和操作
2、LINQ to Entities 虽然编码是操作集合对象,但是最终会被框架转换成对应具体数据库表的操作,也就是Linq to Entities执行时会最终被转换成sql语句执行,转换中,from ,where ,order by ,select
等部分会转换成对应的sql语句,用到的函数会转成相应的sql函数或运算符。
比如StartsWith(“张”),在sql server 中会被转换成Like “张%”

在这里插入图片描述String类型有一个方法:contains(),该方法是判断字符串中是否有子字符串。如果有则返回true,如果没有则返回false。
Find 方法:a.Find(a=>a.name==“查询条件”) ,

从a中取 一条 name符合该查询条件的数据

FindALL 方法:a.Find(a=>a.name==“查询条件”) ,

从a中取 所有 name符合该查询条件的数据

select 方法:a.select(k=>k.id==“查询条件”),

加条件查询时,返回bool型结果;没条件返回对象

从a中把 所有 id符合所填的查询条件的数据拿取出来

where方法:a.where (k=>k.id=“查询条件”)

必须加条件,且返回对象结果

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值