![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C#
C#基础知识
CJM无限Coding
这个作者很懒,什么都没留下…
展开
-
在浏览器访问接口及编写测试demo调用接口正常,整合到项目却出现:调用接口异常在ServiceModel客户端配置部分中,找不到引用协定“XXXX.XXXX”的默认终结点元素
最近在调用WebService时遇到了下面这个问题:一开始我还是觉得有点奇怪,因为我已经写了一个测试的demo,可以调用这个接口,然后在项目中调用的时候竟然报错了。经过一波操作找到了这个问题的解决方法:原因是一个解决方案里包括了多个项目,我们可能在其中一个项目中调用了这个接口,这个项目的app.config文件里有对应的接口信息。还需要将这个接口的配置信息复制到主程序的app....原创 2020-04-28 10:12:16 · 508 阅读 · 0 评论 -
C#文件操作之FileStream类详解
首先要明确FileStream类操作的是字节和字节数组常用构造函数介绍最简单的构造函数只有两个参数,即文件名和FileMode枚举值FileStream(fliename , FileMode.<Member>)另一个常用构造函数则有三个参数,第三个参数是FileAccess枚举的一个成员,它指定了流的作用FileStream(fliename , FileMo...原创 2020-04-22 16:45:50 · 4610 阅读 · 0 评论 -
XML转DataSet使用实例及注意事项
方法如下:public static DataSet ConvertXMLToDataSet(string xmlData) throws Exception{ StringReader stream = null; XmlTextReader reader = null; try { DataSet xmlDs = new Dat...原创 2020-04-21 15:02:08 · 917 阅读 · 2 评论 -
An error occurred during local report processing: report definition has an invalid target namespace
万恶的An error occurred during local report processing异常出现这个异常有很多原因,下面介绍一下由于VS版本问题造成这样的异常:The report definition has an invalid target namespace 'http://schemas.microsoft.com/sqlserver/reporting/2016/...原创 2020-04-09 16:45:16 · 2655 阅读 · 0 评论 -
C#操作(读取、修改)项目exe.config文件之动态配置接口
我们经常要在项目中添加服务引用,去调用各种服务啊,接口啊。就拿调用接口来讲,当你添加了服务引用后就会有一个项目congfig配置文件,里面可以配置接口信息,像地址名称等等,我们就可以通过修改这个congfig文件来动态调用各个接口了,当然要自己添加一个表单在界面进行修改。先来看看这个配置了接口信息的配置文件内容:<?xml version="1.0" encoding="utf-8...原创 2020-04-01 17:48:50 · 1471 阅读 · 0 评论 -
C#知识点总结(入门必看)
01 C#项目结构&HelloWorld!(1)在vs2019中编程HelloWorld(2)C#项目结构02 使用变量、操作符和表达式(1)使用标识符(2)认识关键字(3)使用变量(4)声明变量时,必须指定它要容纳的数据的类型(5)使用基元数据类型(又叫基本数据类型或原始数据类型)(6)操作符和类型(7)控制优先级(8)变量递增和递减(9)...原创 2020-03-22 20:58:31 · 4545 阅读 · 2 评论 -
20 分离应用程序逻辑并处理事件
1.理解委托定义:是对方法的引用。平时调用方法方式:Processor p = new Processor();p.performCalculation();委托对象引用了方法。和将int值赋给int变量样,是将方法引用赋给委托对象。下例创建performCalculationDelegate 委托来引用Processor对象的performCalculation方法。这...原创 2020-03-22 14:54:28 · 581 阅读 · 0 评论 -
19 枚举集合
1.枚举集合中的元素下例用foreach语句列出一个简单数组的数据项:int[] pins = {9,3,7,2};foreach (int pin in pins){ Console.Writel ine(pin);}foreach极大简化了需要编写的代码,但它只能在特定情况下使用一只能 遍历可枚举集合。什么是可枚举集合?简单地说,就是实现了System.C...原创 2020-03-22 14:42:15 · 539 阅读 · 0 评论 -
18 使用集合
下表总结了最常用的一些集合类:1.1List<T>集合类泛型List<T>类是最简单的集合类。用法和数组差不多,可以使用标准数组语法(方括号和元素索引)来引用集合中的元素(但不能用这种语法在集合初始化之后添加新元素)。List<T>类比数组灵活,避免了数组的以下限制。(1)为了改变数组大小,必须创建新数组,复制数组元素(如果新数组较...原创 2020-03-22 14:38:20 · 442 阅读 · 0 评论 -
17 泛型概述
1.object的问题为了理解泛型,首先要理解它们用于解决什么问题。假定要建模一个先入先出队列,可创建一个下面这样的类。class Queue{ private const int DEFAULTQUEUESIZE = 100; private int[] data; private int head = 0, tail = 0; private ...原创 2020-03-21 22:35:41 · 371 阅读 · 0 评论 -
16 使用索引器
1.什么是索引器属性可被视为一种智能字段:类似地,索引器可被视为一种智能数组(索引器本质上是“有参属性”:而上一片博客所说的普通属性是“无参属性”。 “索引器”只是C#对“有参属性”的叫法。)。属性封装了类中的一个值,而索引器封装了一组值。使用索引器时,语法和使用数组完全相同。1.1不用索引器的例子例如:以下表达式使用左位移(<<)和按位AND(&)操作符判断...原创 2020-03-21 22:08:32 · 508 阅读 · 0 评论 -
15 使用属性以访问字段
1.什么是属性定义:是字段和方法的交集—— 看起来像字段,用起来像方法。访问属性所用的语法和访问字段一样。然而,编译器会将这种字段风格的语法自动转换成对特定访问器的调用。访问器:取值和献值方法统称为访问器方法。两个方法有时也称为get访问器和set访问器,或者getter 和setter。属性的声明如下所示:AccessModifier Type ProperName{...原创 2020-03-21 21:56:43 · 457 阅读 · 0 评论 -
14 使用垃圾回收和资源管理
1.对象的生存期首先我们来看一下创建对象的过程。对象用new操作符创建。下例创建Square(正方形)类的新实例class Square{… void Draw() { … }}Square mySquare = new Square();//Square是引用类型new 表面上是单步操作,但实际分两步走:1.new操作...原创 2020-03-21 21:41:16 · 435 阅读 · 0 评论 -
13 创建接口和定义抽象类
从类继承是很强大的机制,但继承真正强大之处是能从接口继承。接口不包含任何代码或数据;它只规定了从接口继承的类必须提供哪些方法和属性。使用接口,方法的名称/签名可以和方法的具体实现完全隔绝。抽象类在许多方面都和接口相似,只是它们可以包含代码和数据。然而,可以将抽象类的某些方法指定为虚方法,指示从抽象类继承的类必须以自己的方式实现这些方法。1.理解接口接口就相当于一份协议(contr...原创 2020-03-20 20:02:34 · 474 阅读 · 0 评论 -
12 使用继承
1.什么是继承在程序设计中,继承的问题就是分类的问题一一继承反映了 类和类的关系。例如,我们学过生物,知道马和鲸都属于哺乳动物。这两种动物具有哺乳动物的共性(都能呼吸空气,都能哺乳,都是温血....但是,两者还有自己的个性(马有蹄子,鲸有鳍状肢和尾片)。那么,如何在程序中对马和鲸进行建模?一个办法是创建两个不同的类,一个叫Horse(马),另一个叫Whale(鲸).每个类都可以实现那种哺乳...原创 2020-03-20 19:44:51 · 388 阅读 · 0 评论 -
11 理解参数数组
1.使用数组参数假定要写方法判断作为实参传递的- 组值中的最小值。一个办法是使用数组。例如,为了查找几个int值中最小的,可以写名为Min的静态方法,向其传递一个int数组,如下所示:class Util{ public static int Min(int[] paramList) { //验证调用者至少提供了一个参数。 //否则抛出...原创 2020-03-20 19:27:38 · 315 阅读 · 0 评论 -
10 使用数组
1.声明和创建数组数组:无序的元素序列。数组中的所有元素都具有相同类型。数组中的元素存储在一个连续性的内存块中,并通过索引来访问。1.1声明数组变量语法:先写它的元素类型名称,后跟一对方括号([ ]),最后写变量名。例如:int[] array;数组元素并非只能是基本数据类型。还可以是结构、枚举或类。例如:为了创建由Date结构构成的数组,可以像下面这样写:...原创 2020-03-20 16:19:46 · 456 阅读 · 0 评论 -
09 使用枚举和结构创建值类型
1.使用枚举假定要在程序中表示一年四季。可用整数0,1,2和3分别表示Spring(春),Summer(夏)、Fall(秋)和Winter(冬)。这虽然可行,但并不直观。如果代码中已经使用了整数值0,那么经常搞不清楚-一个特定的0是否代表Spring。另外,这也不是一种十分可靠的方案。例如,假定声明了名为season的int变量,那么除了0, 1, 2和3,其他任何合法的整数值都可以赋给它...原创 2020-03-20 16:00:08 · 385 阅读 · 0 评论 -
08 理解值和引用
1.复制值类型的变量和类C#大多数基元类型(包括int,float,double和char等,但不包括string,原因稍后解释)都是值类型。将变量声明为值类型,编译器会生成代码来分配足以容纳这种值的内存块。例如,声明int类型的变量会导致编译器分配4字节(32位)内存块。向int变量赋值(例如42),将导致值被复制到内存块中。类类型(比如上一篇博客讲的Circle类)则以不同方式处理。声...原创 2020-03-20 11:16:38 · 399 阅读 · 0 评论 -
07 创建并管理类和对象
1.理解分类英语里面的类(class)是分类(classification)的词根。设计类的过程就是对信息进行分类,将相关信息放到有意义的实体中。所有人都会分类——并非只有程序员才会。例如,所有汽车都有通用的行为(都能转向、制动、加速等)和通用的属性(都有方向盘、发动机等)和通用的属性(都有方向盘、发动机等)。2.封装的目的封装是定义类时的重要原则。它的中心思想是:使用类的程序不...原创 2020-03-20 09:34:43 · 481 阅读 · 0 评论 -
06 管理错误和异常
1.处理错误生活并非总是一帆风顺。轮胎可能扎破,电池可能耗尽,螺丝起子并非总在老地方,应用程序的用户可能进行了出乎意料的操作。在计算机世界里,磁盘可能出故障,编写不当的程序可能影响机器上运行的其他应用程序(比如由于程序bug造成耗尽所有内存),无线网络可能在最不恰当的时刻断开连接,甚至一些自然现象(比如附近的一次闪电)也会造成电源或者网络故障。错误可能在程序运行的任何阶段发生,其中许多都不是程...原创 2020-03-20 09:18:36 · 397 阅读 · 0 评论 -
05 使用复合赋值操作符
1.使用复合赋值操作符将一个变量的值加上42,可以使用赋值和加法操作。例如,以下语句在answer上加42,新值再赋给answer。换言之,在运行该语句之后,answer的值比之前大42:虽然这是有效的语句,但有经验的程序员不会这样写。在变量上加一个值是常见操作,所以C#专门提供了+=操作符来简化它。要在answer上加42,有经验的程序员会像下面这样写:answer += 42;...原创 2020-03-19 21:10:00 · 367 阅读 · 0 评论 -
04 使用判断语句
1.声明布尔变量和现实世界不同,程序世界的每一件事情要么黑,要么白;要么对,要么错;要么真,要么假。例如,假定创建整数变量X,把值99赋给它,然后问:“x中包含值99吗?”答案显然是肯定的。如果问:“X小于10吗?”答案显然是否定的。这些正是布尔表达式的例子。布尔表达式肯定求值为true或false。bool变量只能容纳两个值之一:true或false。例如以下语句声明bool变量areY...原创 2020-03-19 20:55:57 · 431 阅读 · 0 评论 -
03 方法和作用域
方法:是具名的语句序列。每个方法都有名称和主体。方法名应该是一个有意义的标识符。方法主体包含方法被调用时实际执行的语句。1.创建方法1.1.声明方法语法:returnType methodName( parameterList ){//这里添加方法主体语句}returnType(返回类型)是类型名称,指定方法返回的数据类型。可以是任何类型,如int或string。...原创 2020-03-19 20:41:17 · 655 阅读 · 0 评论 -
02 使用变量、操作符和表达式
1.使用标识符标识符:对程序中的各个元素进行标识的名称。这些元素包括命名空间、类、方法和变量。语法规则:(1)只能使用字母(大写和小写)、数字和下划线(2)标识符必须以字母或下划线开头例如:number3,_student,score就是有效的标识符,而4his,clear$则不是2.认识关键字C#语言保留77个标识符供自己使用,程序员不可处于自己的目的而重用这些...原创 2020-03-19 20:32:53 · 790 阅读 · 0 评论 -
01 C#项目结构&HelloWorld!
先对C#的整个项目结构有一个简单的了解,然后就是开启我们的入门仪式——Hello World!1.打开VS2019 ,点击创建新项目;2.选择创建“C#控制台应用(.NET Framework)”,再点击下一步;3.填写项目名称,项目位置,选择框架版本,再点击创建;4.此时Windows将显示项目初始代码,如下图所示:5.再看一下最右侧的“解决方案资源管理器”,...原创 2020-03-19 20:27:35 · 1571 阅读 · 0 评论 -
C# 元组
定义:元组是包含多个字段以表示数据成员的轻量级数据结构。当然元组是比class和struct类型更为简单灵活的数据容器语法://1var tuple= (a: 5, b: 10); //or var tuple= (5,10); //2(int a,int b) tuple1 = (5,10);// or (int,int) tuple1 = (5,...原创 2019-11-11 17:02:22 · 5131 阅读 · 0 评论 -
C# 实现对ini配置文件的读写操作
背景:我们在做项目的过程中经常都需要对配置文件进行操作 .config .ini 等配置文件,今天我们先来学习一下对.ini配置文件的操作。主要使用kernel32.dll动态链接库的两个方法:GetPrivateProfileString()和WritePrivateProfileString();首先我们先分别对两个方法的参数进行一个简单的了解int GetPriva...原创 2019-11-08 15:03:39 · 1743 阅读 · 0 评论