【C#工作总结】教程文章相关的互联网学习教程文章

c#截取字符串归纳总结【代码】

string str ="11- 3 [1,2,3,4] Q ERTY$ %^ 23"; 取第一个字符(“1”) var first = str.Substring(0, 1); 取最后一个字符(“3”) var last = str.Substring(str.Length - i,1); 取特定字符“[“和”]”内的字符(“1,2,3,4”)并以数组的形式保存输出 string left = "["; string right = "]"; int IndexofLeft = stra.IndexOf(left); int IndexofRight = stra.IndexOf(right); string arr = stra.Substring(IndexofLeft + 1,...

c#面试总结

项目招人,负责面试了几个人,网上找了一些面试内容,总结一下什么是.NET?什么是CLR?IL是什么?GC是什么,简述一下GC的工作方式? 类(class)和结构(struct)的区别是什么?它们对性能有影响吗?.NET BCL里有哪些是类(结构),为什么它们不是结构(类)?在自定义类型时,您如何选择是类还是结构? 在.NET程序运行过程中,什么是堆,什么是栈?什么情况下会在堆(栈)上分配数据?它们有性能上的区别吗?“结构”对象可能分配...

C# string总结【图】

目录1、string null、""、String.Empty的区别1.1、""和String.Empty 1.2、""和null2、string方法属性总结1、string null、""、String.Empty的区别 1.1、""和String.Empty String.Empty的内部实现: public static readonly String Empty = ""; 所以String.Empty的内部实现是相同于""的,一般使用是可以把这俩化为等号的 1.2、""和null string对象的值存储在堆上,栈上存储的是值在堆中的地址。 ""在堆和栈中都会分配内存。 nu...

总结C#获取当前路径的7种方法

C#获取当前路径的方法如下:1. System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName-获取模块的完整路径。e799bee5baa6e4b893e5b19e313333376234622. System.Environment.CurrentDirectory-获取和设置当前目录(该进程从中启动的目录)的完全限定目录。3. System.IO.Directory.GetCurrentDirectory()-获取应用程序的当前工作目录。这个不一定是程序从中启动的目录啊,有可能程序放在C:\www里,这个函数有可能返回...

C# 多线程(17):小总结【代码】

前言 本篇内容是小总结和过渡,看完这篇后,就要开始继续学习 C# 多线程中的知识点啦~。 前面,经过 16 篇的学习,我们学习了多线程、锁、线程池、任务、同步、异步等知识,还没有使用到 async、await 这些关键字。 有同学问,现在随便拉一个开源项目,里面几乎都是 async/await 这些组成;使用了 async/await ,结果比不用更加耗性能了;ASP.NET Core 中的管道,异步,回调这些又是啥? 要搞清楚这些,就要好好了解 Task(任务),先...

.Net/C# 面试题总结【代码】

.Net 面试题汇总# 一、基础概念 1. 简述 private, protected, public, internal 修饰符的访问权限private:私有成员,在类的内部才可以访问(只能从其生命上下文中进行访问) protected:保护成员,该类内部和从该类派生的类中可以访问。 friend: 友元,声明friend元素的程序集中的代码可以访问该元素,而不能从程序集外部访问。 protected friend : 在派生类或同意程序集内部都可以访问。 public : 公共成员,完全公开,没有访问...

总结下C#中有关结构体的几个问题【代码】【图】

记录几个别人面试过的变态题目。 1、结构体定义构造的时候需要注意什么? 先看两个测试结果:总结:结构体中不允许显示的定义构造函数,可以定义有参构造,但是需要在函数中将结构体中定义的字段赋值。另外需要注意,结构体中不允许直接对字段赋值。3、结构体中的类是什么类型,值类型还是引用类型?结构体继承了接口,是值类型还是引用类型?1 using System;2 3 namespace ConsoleApp14 {5 interface IPeople { }6 7 class...

C# Byte[]使用总结

C# Byte[] string转换01,C# string类型转成byte[]: Byte[] byteArray = System.Text.Encoding.Default.GetBytes ( str ); 02, C# byte[]转成string: stringstr = System.Text.Encoding.Default.GetString ( byteArray ); 03,C# string类型转成ASCIIbyte[]: ("01"转成byte[] =newbyte[]{0x30,0x31}) byte[] byteArray = System.Text.Encoding.ASCII.GetBytes ( str ); 04,C# ASCIIbyte[]转成string: (byte[] = new byte[...

C# —— OOP/OOD(面向对象编程/分析)经验总结【代码】【图】

学习面向对象编程语言实际上是学习好面向对象编程的各种原则、方法、技巧、经验、模式等;注意:下面通过一个项目实战【模拟考试系统】,从这个过程中展示各种方法原则; 一、项目需求分析 1)试题数据存放在文本文件中,分析格式(后面可以改成数据); 2)面向对象程序设计的分析基本步骤: 1.分析项目中有哪些类(或者对象)参与程序。分析结果:对象选择的标准:【名词分析法】第一, 这个对象的确能参与程序的运行; 第二, 这...

C#学习总结(一)

1、C#:简单,面向对象,类型安全 2、C#语言的特点:语法简洁,面向对象设计,安全性机制,错误异常处理机制,兼容性高,与web紧密结合 3、.Net框架包含.Net框架类库 与 CLR(公共语言运行室);.Net包括.Net Framework(开发平台)与Visual Studio(开发工具) 4、CLR又包含(CLS:公共语言规范 CTS:通用类型系统) 5、C#在编译过程中编译成中间语言代码 6、C#字符串拼接: 1) “+=” 2)String.Format("{0}{1}{2}", “a”, “...

C#常用优化总结

1.对象的创建 1.1. 避免不必要的对象创建; 由于垃圾回收的代价较高,所以C#程序开发要遵循的一个基本原则就是避免不必要的对象创建 1.2. 避免循环创建对象; 如果对象并不会随每次循环而改变状态,那么在循环中反复创建对象将带来性能损耗。高效的做法是将对象提到循环外面创建 1.3. 在对应的逻辑分支创建对象; 如果对象只在某些逻辑分支中才被用到,那么应只在该逻辑分支中创建对象 1.4. 避免...

C#中指针使用总结【代码】【图】

C#为了类型安全,默认并不支持指针。但是也并不是说C#不支持指针,我们可以使用unsafe关键词,开启不安全代码(unsafe code)开发模式。在不安全模式下,我们可以直接操作内存,这样就可以使用指针了。在不安全模式下,CLR并不检测unsafe代码的安全,而是直接执行代码。unsafe代码的安全需要开发人员自行检测。 一、Vs2010中开启unsafe code 的方式 在方法、类、代码块中使用unsafe关键词,如:unsafe static void Main(string[] arg...

面试常考各类排序算法总结.(c#) 原文来自https://www.cnblogs.com/geduocoding/p/7097870.html【代码】【图】

前言 面试以及考试过程中必会出现一道排序算法面试题,为了加深对排序算法的理解,在此我对各种排序算法做个总结归纳。 1、冒泡排序算法(BubbleSort) 1.1 算法描述 (1)比较相邻的元素。如果第一个比第二个大,就交换他们两个。 (2)对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 (3)针对所有的元素重复以上的步骤,除了最后一个。 (4)持续每次对越来越少的元素重复...

C#性能优化总结

1. C#语言方面 1.1 垃圾回收 垃圾回收解放了手工管理对象的工作,提高了程序的健壮性,但副作用就是程序代码可能对于对象创建变得随意。1.1.1 避免不必要的对象创建 由于垃圾回收的代价较高,所以C#程序开发要遵循的一个基本原则就是避免不必要的对象创建。以下列举一些常见的情形。1.1.1.1 避免循环创建对象 ★ 如果对象并不会随每次循环而改变状态,那么在循环中反复创建对象将带来性能损耗。高效的做法是将对象提到循环外面创...

C#工作总结【代码】

Winform窗体之间传值 1.通过构造函数 实现代码如下: 窗体Form1LoginData ld = null;public LoginData Ld{get{return ld;}set{ld = value;}}在窗体Form2中调用如下 LoginData ld = null; Login form = new Login(); ld = form.Ld;2.通过静态变量 首先在窗体Form1中定义一个静态变量并赋值 public static string ErrorStr = ""; ErrorStr ="text";在窗体Form2中调用如下 string err = Form1.ErrorStr;3.调用另一个窗体时传递值 在窗...