C#中语法代码的学习
Posted 木白星枝
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#中语法代码的学习相关的知识,希望对你有一定的参考价值。
无参构造函数,默认会有,但是如果类中添加了有参构造函数,就必须添加无参构造函数 [Serializable]序列化,这个和json字符串转换成类对象的时候变量的顺序是不是有关系?
【
C#[Serializable]在C#中的作用-NET 中的对象序列化 - AnswerCard - 博客园 (cnblogs.com)
【转】c# [Serializable]的作用 - 八风不动 - 博客园 (cnblogs.com)
C#[Serializable]在C#中的作用-NET中的对象序列化 - 百度文库 (baidu.com)
】
C# 创建Windows窗体应用程序(WinForm程序)_zs1342084776的博客-CSDN博客_winform
C# List用法 List介绍 - 深海地平线 - 博客园 (cnblogs.com)
C#-Action - 闻风听雨 - 博客园 (cnblogs.com)
【
C#里 =>的用法_弹吉他的小刘鸭的博客-CSDN博客_=> c#
=> 运算符 - C# 参考 | Microsoft Docs
LINQ——查询语法_LifeOases的博客-CSDN博客_linq查询语句
】
System.Diagnostics命名空间里的Debug类和Trace类的用途 - 破狼 - 博客园 (cnblogs.com)
String.join()方法的使用_匆匆321的博客-CSDN博客_string.join
【
SQL事务回滚 ADO BeginTrans, CommitTran 以及 RollbackTrans 方法 - ^ν^向上人生^ν^ - 博客园 (cnblogs.com)
mysql事务挂起_嵌套事务、挂起事务,Spring 事务机制有什么奥秘?_weixin_39908462的博客-CSDN博客 】
自动实现的属性 - C# 编程指南 | Microsoft Docs
【
【C#】方法的重写_凉快-Eric的博客-CSDN博客_c#重写方法
C#中对虚拟属性和抽象属性的重写 - HackerVirus - 博客园 (cnblogs.com)
override方法重写的基类方法必须是virtual,abstract,override。
C#中的类中有成员变量,有成员方法,还有一种特殊的成员:属性,属性也可以重写
属性既可以被视为一种成员变量,也可以看做是一种成员方法,实际上是对成员变量的一种扩展。
对程序员而言,属性是一种能够读写相应成员变量的特殊方法。;对用户而言,属性是一种“成员变量”,但其并不是真实存在的,而是关联到特定的一个或若干个成员变量。总之,要把属性当方法,而不要当变量。
public string Name get; set;
自动实现的属性通过以下方式定义:使用 get 和 set 关键字,但不提供任何实现。
下面的示例删除了参数化构造函数,以便通过调用无参数构造函数和SaleItem立即初始化 SaleItem 对象。
using System;
public class SaleItem
public string Name get; set; ="1"//可以对属性赋初值
public decimal Price get; set;
class Program
static void Main(string[] args)
var item = new SaleItem Name = "Shoes", Price = 19.95m ;
Console.WriteLine($"item.Name: sells for item.Price:C2");
限制访问器可访问性,可以设置set方法为protected
public int BufferSize get; set; //属性
public int BufferSize;//公共字段
如果满足下面几个条件,那么我们便可以大胆地使用公共字段:
1. 允许自由读写;
2. 取值范围只受数据类型约束而无其他任何特定限制;
3. 值的变动不需要引发类中其它任何成员的相应变化;
属性的使用条件则恰好跟变量相反,只要满足下面任何一个条件,就应该使用属性:
1. 要求字段只能读或者只能写;
2. 需要限制字段的取值范围;
3. 在改变一个字段的值的时候希望改变对象的其它一些状态;
代码可以参考C#的学习_木白星枝的博客-CSDN博客_c#学习中的三.3
使用非自动实现的属性,便于维护.因为:如果一个类的一个变量int a ,在其它包或命名空间类中使用了1000次,但是过了许久,你想把a改为b,如果直接对变量a操作的话,就得需求修改整个程序的1000处. 如果用属性了,就不会了,只需改这个方法即可public int A set a = value; get return a; 放为:public int B set b = value; get return b; 除去这个属性之外的地方根本不需要改变。
】
【
C#中Attribute的继承 - PowerCoder - 博客园 (cnblogs.com)
C#中的Attribute - 诺唯 - 博客园 (cnblogs.com)
关于C# 中的Attribute 特性 - 钢钢 - 博客园 (cnblogs.com)
C# 特性(Attribute) - 智者见智 - 博客园 (cnblogs.com)
[C#] C# 知识回顾 - 特性 Attribute - 反骨仔 - 博客园 (cnblogs.com)
】
C# 元数据描述 - 滴水瓦 - 博客园 (cnblogs.com)
元数据由三种元数据表构成:定义表,引用表和清单表。
1)定义表,包含了类型、属性、方法的定义。对应于上面示例中TypeDef/Field/Method等。
2)引用表,主要就是对引用的程序集内部的类型、属性、方法的描述。对应于上面示例中TypeRef/MemberRef等。
3)清单表,主要就是对程序集组成的那部分文件的信息。
(1条消息) #region_飞鸿酱的博客-CSDN博客_#region
Formatting.Indented有缩进和None没有缩进
如何将缩进序列化仅应用于某些属性? (codingdict.com)
Newtonsoft.Json学习
(1条消息) Asp.Net Newtonsoft.Json使用教程_宋军涛的博客-CSDN博客_newtonsoft.json 教程
(1条消息) Newtonsoft.Json介绍_萝卜耳朵的博客-CSDN博客_newtonsoft
c#添加Newtonsoft.Json包的操作_C#教程_得牛网 (deiniu.com)
(1条消息) NET流行高性能JSON框架-Json.NET_dotNET跨平台的博客-CSDN博客
using的三种用法 - 散步的乌龟 - 博客园 (cnblogs.com)
list.foreach的用法_第5503号的博客-CSDN博客_java list.foreach用法
c#中System.Enum.Parse的使用_我只想做第一的博客-CSDN博客_system.enum.parse
将一个或多个枚举常数的名称或数字值的字符串表示转换成等效的枚举对象。
SqlConnectionStringBuilder的用法_普通网友的博客-CSDN博客_sqlconnectionstringbuilder
C#学习笔记——readonly修饰符、const成员常量、本地常量、常量与静态量_养鼠的猫的博客-CSDN博客
(1条消息) sealed修饰符简介_QuTianLei的博客-CSDN博客_sealed修饰符
C#之out修饰符、ref修饰符、params修饰符的简单介绍 - 大大大大笨蛋 - 博客园 (cnblogs.com)
C#引用参数和输出参数_C语言这么神奇的吗的博客-CSDN博客_引用参数与输出参数
(1条消息) C#函数参数默认值及指定传参_programerbismark的博客-CSDN博客_c# 默认参数
【
C#中internal关键字是什么意思?什么叫做“只能在包含它的程序集中访问该方法” - 春哥也编程 - 博客园 (cnblogs.com)
protected修饰的方法和变量,只限于本类和子类访问,在java中同一个包里好像也能访问?
(1条消息) C#的修饰符_云朵儿的媛码的博客-CSDN博客_c# 修饰符
C#中Trim()、TrimStart()、TrimEnd()的用法介绍_C#教程_脚本之家 (jb51.net)
C#修饰符讲解大全 - 胡萝卜炖大白兔 - 博客园 (cnblogs.com)
】
try-catch的用法,newException不同信息内容,然后获取弹出提示框。
try
if (1 < 4)
throw new Exception("用户名长度不少于4位!");
if (2> 0)
throw new Exception("请选择用户类型!");
catch (Exception ex)
MessageBox.Show("新建用户失败!\\r\\n" + ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
return false;
Convert.ToInt32 方法 (System) | Microsoft Docs
【
C#IDisposable用法详解 - 百度文库 (baidu.com)
说说IDisposable - 知乎 (zhihu.com)
】
【
C#基础之IEnumerable_懒笔头的博客-CSDN博客_ienumerable
Type Java类型_a327369238的博客-CSDN博客_javatype类型
ToArray()和IEnumerable<T>,List<T>_dianpi2993的博客-CSDN博客】
】
C#泛型方法_夏威夷紫菜的博客-CSDN博客_c# 泛型方法
C# 返回泛型的函数_铁樵的博客-CSDN博客_c# 返回泛型
C# interface:定义接口 (biancheng.net)
二.VS中代码的报错
1.CS0012 类型“**“在未引用的程序集中定义。必须添加对程序集“**”的引用
(1)在我的窗体客户端项目中,在引用处添加对应的引用,或者添加对应的nuget包。
在我的一个项目(解决方案)中,一个项目了添加对应的包,另一个项目引用了这个项目,用到这个项目中用到的包中的一个变量,显示了上面的错误情况。
添加nuget包肯定是没有问题的,但是添加引用可能自动添加不上,需要手动添加,如何手动添加呢:首先需要找到对应的nuget包,找到其文件夹下的lib文件下,然后找到对应的文件,一般是dll和xml 2个文件,找到复制到目标项目的bin->debug文件夹下就可以了。(ps这是限于已导入包含nuget包时,要添加对应引用的方法)
(2)在服务器项目中,需要在web.config中添加对应配置。
以上是关于C#中语法代码的学习的主要内容,如果未能解决你的问题,请参考以下文章