c#基础语法
c#基础语法
清风ai明月
一名普通的程序员小哥哥
展开
-
List.Where 过滤 Find查找
List<PeopleModel> list = new List<PeopleModel>();list.Add(new PeopleModel() { Name = "小明", Age = 18 });list.Add(new PeopleModel() { Name = "小明2", Age = 18 });list.Add(new PeopleMode...原创 2020-03-08 16:55:23 · 1475 阅读 · 0 评论 -
克隆对象
ICloneable接口ICloneable接口包含一个Clone方法,可以用来创建当前对象的拷贝。public interface ICloneable{ object Clone();}支持MemberWiseClone()方法,浅表克隆public class Person : ICloneable{ public string N...原创 2020-03-06 22:01:13 · 228 阅读 · 0 评论 -
c# 泛型
泛型(Generic)的特性使用泛型是一种增强程序功能的技术,具体表现在以下几个方面:它有助于您最大限度地重用代码、保护类型的安全以及提高性能。 您可以创建泛型集合类。.NET 框架类库在System.Collections.Generic命名空间中包含了一些新的泛型集合类。您可以使用这些泛型集合类来替代System.Collections中的集合类。 您可以创建自己的泛型接口...转载 2020-03-06 21:12:43 · 238 阅读 · 0 评论 -
c# Lambda表达式使用 Action Fun
//Lambda运算符=> //Lambda运算符的左边是输入参数(如果有) //右边是表达式或语句块 //无参数 private void OnTest1() { Action cb1 = delegate () { Console.W...原创 2018-06-01 14:03:50 · 1266 阅读 · 0 评论 -
在c#中 Json的序列化与反序列化
public static class JsonTools { #region 支持net框架4.0以上 //DataContractJsonSerializer 需要引用System.Runtime.Serialization public static string ObjectToJson<T>(T obj) ...原创 2018-05-31 18:47:02 · 568 阅读 · 0 评论 -
foreach 是否可以遍历删除元素
foreach 是否可以遍历删除元素?答案:不可以正确写法时可以用for循环递减删除,或while循环递归删除原创 2018-06-04 18:46:22 · 4665 阅读 · 0 评论 -
数据库操作笔记
Access数据库操作 public static class AccessHelper { public static string strConn = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=testDB.accdb"; //打开数据连接 public static ...原创 2018-04-25 18:21:00 · 219 阅读 · 0 评论 -
MultiBinding 多绑定
MultiBinding 允许绑定多个源子元素是指定绑定到各种属性上的Binding元素例如下面:使用MultiBinding多绑定 通过子元素Binding指定了Person类中的LastName和FirstName属性,需要使用多值转换器,把多个值转换为一个。(实现IMultiValueConverter接口)这个转换器使用了一个参数(通过ConverterParameter指定的)这个转换器...原创 2018-03-11 11:34:24 · 7366 阅读 · 0 评论 -
DateTime自定义时间格式
private void OnTest1() { DateTime dt = DateTime.Now; Console.WriteLine(dt.ToString("yy"));//年份后两位 Console.WriteLine(dt.ToString("yyyy"));//4位年份 ...转载 2018-01-14 17:06:57 · 2633 阅读 · 0 评论 -
图像相关(三) Bitmap与byte[]、BitmapImage与byte[]互相转换、图像加载与保存
using System;using System.Drawing;using System.IO;using System.Windows.Media.Imaging;namespace WpfApplication1.com.utils{ /// /// 图像相关工具 /// public static class Image原创 2017-11-06 16:20:07 · 2066 阅读 · 0 评论 -
图像相关(二) - System.Drawing.Bitmap 的使用
//缩放图像 private void ScaleBitmap(string imgUrl) { //源图像 System.Drawing.Bitmap oldBmp = new System.Drawing.Bitmap(imgUrl); //新图像,并设置新图像的宽高原创 2017-08-21 18:46:47 · 20222 阅读 · 0 评论 -
c# Thread 线程 (二)
1、无参数 private void btn1_Click(object sender, RoutedEventArgs e) { Thread t = new Thread(OnThreadTest); t.Start(); } private void OnThreadTest(原创 2017-08-18 18:32:52 · 407 阅读 · 0 评论 -
c# Thread 线程(三) lock线程锁
在多线程编程中,可能会有多个线程并发的(或同时)执行一段代码,但是某些情况下需要在同一时刻只能有一个线程执行,避免某些对象的调用冲突或内存使用冲突,这就需要用到锁(lock)。lock 关键字可以用来确保代码块完成运行,而不会被其他线程中断。在同一个时刻内只允许一个线程进入执行,而其他线程必须等待。 public partial class TestWindow : Window {...原创 2018-06-02 10:16:08 · 9004 阅读 · 0 评论 -
数组和类声明的几种方式
//数组的声明 //第一种 int[] arr1 = null; arr1 = new int[3]; //第二种 int[] arr2 = new int[3]; //第三种 int[] arr3 = ne...原创 2018-07-04 18:10:49 · 12662 阅读 · 3 评论 -
在wpf中调用windows From窗体
//如果需要再WPF中显示非模态windows窗体时,需要调用此方法。//即时不调用此方法,也仍然会显示窗体,但是不能识别所有键盘输入。System.Windows.Forms.Integration.WindowsFormsHost.EnableWindowsFormsInterop();当再WPF中显示windows窗体时,窗体会为按钮或其他通用控件使用旧样式(xp以前的样式)这...原创 2019-06-21 01:14:58 · 1013 阅读 · 0 评论 -
Newtonsoft.Json 使用
Newtonsoft.Json,是.Net中开源的Json序列化和反序列化工具,官方地址:https://www.newtonsoft.com/json具体使用:1. 右键项目=>Nuget包管理=>添加Newtonsoft.Json2. 引入命名空间//数据类public class Student{ public string Nam...原创 2019-06-20 21:54:26 · 12509 阅读 · 0 评论 -
C#中ToString()格式详解
Int.ToString(format):格式字符串采用以下形式:Axx,其中 A 为格式说明符,指定格式化类型,xx 为精度说明符,控制格式化输出的有效位数或小数位数,具体如下:格式说明符说明 示例 输出 C 货币 2.5.ToString("C") ¥2.50 D 十进制数 25.ToString("D5") 00025 ...转载 2019-03-31 21:58:38 · 3143 阅读 · 0 评论 -
c# 使用Office com组件时遇到的问题
检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件失败,原因是出现以下错误: 80070005 拒绝访问。 (异常来自 HRESULT:0x80070005 (E_ACCESSDENIED))。ErrorUnableToInitializeOfficeApp Excel Retrieving the COM clas...原创 2019-03-13 10:14:52 · 1098 阅读 · 0 评论 -
c# 获取Mac地址
需要添加引用:System.Management public static string GetMacAddress() { string macAddress = ""; using (ManagementClass mc = new ManagementClass("Win32_NetworkAdapterC...原创 2019-01-23 14:27:56 · 1985 阅读 · 0 评论 -
File类使用
File 类(静态类)提供用于创建、复制、删除、移动和打开单一文件的静态方法,并协助创建 FileStream 对象。File.Open Method打开指定路径上的 FileStream。 Open(String, FileMode) private void OpenTXT() { string txtUrl = ...原创 2019-01-16 15:39:45 · 385 阅读 · 0 评论 -
c# UdpClient类
public class CxnUDPClient { private UdpClient _udpClient; private string _remoteHost; private int _remotePort; private bool _isStopThread = false; ...原创 2019-01-24 17:34:38 · 1349 阅读 · 0 评论 -
c# UDP Socket
public class UDPSocket { private Socket _client; private string _remoteHost; private int _remotePort; private IPEndPoint _remoteEP; private int _...原创 2019-01-24 13:09:46 · 1525 阅读 · 1 评论 -
Task常用方法
创建Task使用构造函数创建TaskTask t = new Task(MyMethod); t.Start();//如果使用构造函数需要使用此函数启动使用Task.Factory.StartNew 进行创建TaskTask t = Task.Factory.StartNew(MyMethod);Task t = Task.Run(MyMethod);t.wait();//同步...原创 2018-08-18 12:35:25 · 1003 阅读 · 0 评论 -
c# 设计模式-单例模式
1、单线程简单实现 public class SingletonObject { private static SingletonObject instance = null; public static SingletonObject Instance { get {原创 2017-04-18 22:13:02 · 248 阅读 · 0 评论 -
c#获取路径方式
当时用Directory.GetCurrentDirectory()和Environment.CurrentDirectory时需要注意:当使用InstallShield Limited Edition发布的桌面应用程序时,快捷方式需要指定WrokingDirectory,不然当通过快捷方式打开程序指定的路径有问题,不是当前执行程序exe的目录。 string str = "";...原创 2017-03-06 22:19:58 · 1316 阅读 · 0 评论 -
using的使用方式
1、命名空间using System.Windows;2、命名空间的别名using System.Windows;using Froms = System.Windows.Forms;例如引用:MessageBox.Show("Hello"); 因为在System.Windows和System.Windows.Forms命名空间中都有此类,可通过声明命名空间的别名来区分使用。原创 2017-04-11 14:35:45 · 539 阅读 · 0 评论 -
c# 正则表达式的使用
亲手一个个测试过的噢using UnityEngine;using System.Collections;using System.Text.RegularExpressions;public class testRegex : MonoBehaviour{ public UILabel m_uiLabelOld = null; public U原创 2016-11-26 01:53:14 · 486 阅读 · 0 评论 -
List.Sort 排序
//数据类实现IComparable接口public class Item : IComparable{ public string name; public float price; //先根据name排序,如果name相同则根据price排序 public int CompareTo(object obj) { I原创 2016-08-24 23:11:00 · 541 阅读 · 0 评论 -
c# API
没事就写点什么,方便自己以后查看吧。如果代码中没有对某个非整数值(12.3)硬编码,则编译器一般假定该变量是double。如果想指定该值为float,可以在其后面加上字符F(或f).float num = 12.3F;原创 2016-06-22 22:22:32 · 324 阅读 · 0 评论 -
Unity API
我说:”有空就写点什么,方便自己以后查看吧“ Application.targetFrameRate 目标帧速率设置帧频,前提是需要设置菜单栏Edit-Project Settiong-Quality面板关闭属性VSync Count(可以理解为帧频设定,同步显卡帧率到显示器刷新率)public class example : MonoBehaviour {void Awake(...原创 2016-06-21 22:35:22 · 711 阅读 · 0 评论 -
二叉查找树
二叉排序树(Binary Sort Tree)又称二叉查找树(Binary Search Tree),亦称二叉搜索树。 二叉排序树或者是一棵空树,或者是具有下列性质的二叉树:(1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值;(2)若右子树不空,则右子树上所有结点的值均大于它的根结点的值;(3)左、右子树也分别为二叉排序树;(4)没有键值相等的节原创 2016-04-21 23:11:54 · 265 阅读 · 0 评论 -
Unity 常用宏
自己常用的一些Unity平台相关宏定义UNITY_EDITORUNITY_ANDROIDUNITY_IPHONEUNITY_STANDALONE_WIN宏的使用方式:#if UNITY_EDITORDebug.Log("aaa");#endif#if UNITY_EDITORDebug.Log("aaa");#else原创 2016-04-21 22:38:32 · 1702 阅读 · 0 评论 -
IEnumerable和IEnumerator介绍和区别
我们都知道数组(int[])和列表(List)都可以进行foreach,如果想自定义类实现foreach必须实现IEnumerable接口。public interface IEnumerable{ [DispId(-4)] IEnumerator GetEnumerator();}public interface IEnumerator{原创 2016-05-26 22:29:01 · 966 阅读 · 0 评论 -
ref和out的区别
////void OnTest(){ int num = 0;//需要初始化 OnMethod(ref num); Debug.Log(num);//10}void OnMethod(ref int i){ i = 10;}//void OnTest(){ int num;//可以不初始化原创 2016-04-12 21:52:22 · 395 阅读 · 0 评论 -
c# 数据类型占用字节数
1字节(byte) = 8位(bit)原创 2016-03-14 22:21:22 · 3392 阅读 · 0 评论 -
冒泡排序
private int[] arr = {};private void bubbleSort(){ for (int i=0; i for(int j=0;j if(arr[j] > arr[j+1]){ int temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = temp; } } } string str = ""; fo原创 2016-03-02 11:13:12 · 338 阅读 · 0 评论 -
时间相关类 TimeSpan
TimeSpan 结构表示一个时间间隔。TimeSpan.FromSeconds 方法 (Double)返回表示指定秒数的 TimeSpan,其中对秒数的指定精确到最接近的毫秒。public static TimeSpan FromSeconds(double value)参数:秒数,精确到最接近的毫秒。原创 2017-02-28 14:09:32 · 1234 阅读 · 0 评论 -
c# Socket通信
SocketTcpClientTcpListenerTcpClient 类为 TCP 网络服务提供客户端连接。TcpListener侦听的 TCP 网络客户端的连接。您可以使用 TcpClient 或 Socket 来与连接 TcpListener。IPAddress 类提供 Internet 协议 (IP原创 2017-02-27 17:46:33 · 363 阅读 · 0 评论 -
c# FileStream、StreamWriter、StreamReader的使用
FileMode Enum指定操作系统打开文件的方式。字段 说明 Append 打开文件,如果不存在则创建一个新文件。 Create 创建新文件,如果文件已存在,则被覆盖。 CreateNew 创建新文件,如果文件已存在,引发IOException异常。 Open 打开文件,如果不存在,引发FileNotFoundException异常。 ...原创 2017-03-15 22:29:17 · 1099 阅读 · 0 评论 -
WPF 样式和资源
样式Style的使用控件的Sytle属性可以赋予附带Setter的Style元素。Setter元素定义Property和Value属性,并给指定的属性设置一个值。直接通过Button控件设置Style,设置Background,FontSize,FontWeight属性。把Style设置TargetType为Button,以便直接访问Button的属性。原创 2017-04-10 10:33:02 · 533 阅读 · 0 评论