
C#学习
文章平均质量分 69
bupt_xycr
欢迎关注我的公众号:算法入门
熟悉
c++
caffe
pytorch
mxnet
tensorflow
深度学习
自动驾驶
点云
图像处理
编程比赛
python
java
展开
-
【转载】继承(C#)
继承(加上封装和多态性)是面向对象的编程的三个主要特性(“支柱”)之一。继承用于创建可重用、扩展和修改在其他类中定义的行为的新类。其成员被继承的类称为“基类”,继承这些成员的类称为“派生类”。 定义一个类从其他类派生时,派生类隐式获得基类的除构造函数和析构函数以外的所有成员。因此,派生类可以重用基类中的代码而无需重新实现这些代码。可以在派生类中添加更多成员。派生类以这种方式扩展基类的功能。原创 2016-04-21 18:56:58 · 375 阅读 · 0 评论 -
C#控制台实现52张扑克牌的分法
52张牌随机分给4个万玩家,要求每个玩家的牌用一个一维数组表示。我们采用模拟大法。初始化一副扑克牌,洗牌,发牌。using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace ConsoleApplication43{原创 2016-04-21 18:56:34 · 3173 阅读 · 0 评论 -
4.20学习笔记c# OpenFileDialog
1.c# OpenFileDialog OpenFileDialog openFileDialog1 = new OpenFileDialog();//新建一个对象 openFileDialog1.InitialDirectory = "D:\\Patch"; InitialDirectory 对话框的初始目录 openFileDialog1原创 2016-04-21 18:51:27 · 334 阅读 · 0 评论 -
C# 中引用类型 和值类型
1,原创 2016-04-21 18:51:19 · 291 阅读 · 0 评论 -
4 月23 学习笔记
C#流(stream)流用于对IO处理 在System.IO名称空间中有以下类 BinaryReader/Writer TextReader/Writer Stream 其中类Stream为抽象类。由此有三个派生类: MemoryStream:对内存进行读取与写入 BufferedStream:对缓冲器进行读取/写入 FileStream:对文件执行读取与写入 TextReader/Writer为原创 2016-04-21 18:51:08 · 241 阅读 · 0 评论 -
【转载】通过修改图片对象的文件的字节 变相\"加密\"\"解密\"图片在磁盘的存储
实现思路比较简单:1.对图片对象进行byteArray转化后 加一些密码字节后"加密"储存在磁盘2.图片显示时 去掉加的字串 用原本的图片信息进行图片对象的构建和显示 WinForm下示例代码:------------------WinForm下通过PictureBox控件来显示:只所以用PictureBox的Image对象 是因为有可能图像对象不是平时所见的已存在于磁盘的图片文件还有可能是从视原创 2016-04-21 18:51:05 · 323 阅读 · 0 评论 -
如何实现控件随窗体大小的改变而自动适应其改变
转自http://blog.youkuaiyun.com/wwwdbs/article/details/2473597在设计可供用户调整大小的窗体时,如何实现该窗体上的控件也应能正确地随窗体的改变而自动调整大小并且能重新定位?此时就要借助控件的.Anchor属性。Anchor属性定义控件的定位点位置。当控件锚定到某个窗体时,如果该窗体的大小被调整,那么该控件维持它与定位点位置之间的距离不变。例如,如果“:Bu原创 2016-04-21 18:50:36 · 10458 阅读 · 1 评论 -
【转载】C# Graphics类详解
封装一个 GDI+ 绘图图面。 此类不能被继承。System.Drawing 命名空间 名称 说明 Clip 获取或设置 Region,该对象限定此 Graphics 的绘图区域。 ClipBounds 获取一个 RectangleF 结构,该结构限定此 Graphics 的剪辑区域。 CompositingMode 获取一个值,该值指定如何将合成图像绘制到此 Graphics。 Co原创 2016-04-21 18:50:28 · 3667 阅读 · 0 评论 -
如何实现控件随窗体大小的改变而自动适应其改变
在设计可供用户调整大小的窗体时,如何实现该窗体上的控件也应能正确地随窗体的改变而自动调整大小并且能重新定位?此时就要借助控件的.Anchor属性。Anchor属性定义控件的定位点位置。当控件锚定到某个窗体时,如果该窗体的大小被调整,那么该控件维持它与定位点位置之间的距离不变。例如,如果“:Button”控件锚定到窗体的左、右和底边缘,那么当调整该窗体的大小时,Button控件水平调整大小,维持到该原创 2016-04-21 18:50:23 · 4254 阅读 · 0 评论 -
C# TextBox中的Validating与Validated事件
转自:http://www.cnblogs.com/limingluzhu/archive/2011/11/09/2243695.htmlvalidating事件发生的时候,值还没有被真正存入,所以是空的,而validated事件发生的时候,值已经存入,所以能取出;一个相当于值的前因,一个相当于值的后果。也就是说,可以用validating事件在值存入之前检验某个先决条件,如果不满足,那么取消之前原创 2016-04-21 18:50:20 · 959 阅读 · 0 评论 -
C#接口的作用。
C#接口是一个让很多初学C#者容易迷糊的东西,用起来好像很简单,定义接口,里面包含方法,但没有方法具体实现的代码,然后在继承该接口的类里面要实现接口的所有方法的代码,但没有真正认识到接口的作用的时候就觉得用接口是多此一举,当然你这样想那是绝对绝对错误的,比尔盖茨的微软请的员工都是比盖茨还聪明的人,他们的C#能添这样的多足吗?!关于接口的作用,网上有一位就真的深入浅出给我们做了很好理解的分析。我们定原创 2016-04-21 18:50:17 · 309 阅读 · 0 评论 -
C#多态的理解
多态性(C# 编程指南)本文来源MSDN http://msdn.microsoft.com/zh-cn/library/ms173152此多态性常被视为自封装和继承之后,面向对象的编程的第三个支柱。 Polymorphism(多态性)是一个希腊词,指“多种形态”,多态性具有两个截然不同的方面:在运行时,在方法参数和集合或数组等位置,派生类的对象可以作为基类的对象处理。 发生此情况时,该对象原创 2016-04-21 18:50:14 · 1900 阅读 · 0 评论 -
C#接口和类的区别
C#接口和抽象类的相同:1.都不能对方法或属性的具体的实现;2.都可以被继承;3.都不可以被实例化。C#接口和抽象类的区别:1.接口是一种类型,不能包含静态的成员,不能包括变量的定义,定义的方法或属性默认为public的,不能加public修饰,继承接口的类在实现接口的成员时必须为public的。2.抽象类本身是类的修饰符,不是一种类型,可以有静态的成员,变量的定义,非抽象的方法(但必须实现),可原创 2016-04-21 18:50:11 · 725 阅读 · 0 评论 -
抽象类中的 虚成员和抽象成员的比较
抽象类只能被用作其他类的基类。抽象类就是用来被继承的。它不能被实例化,使用abstract修饰符声明。注:抽象类可以包含抽象成员,但不是必须的。成员可以是抽象成员和普通成员的任意组合。 抽象成员是被设计来被覆写的函数(方法)成员。特征如下:1.抽象成员只能声明在抽象类中,它被用abstract修饰符标记。2.它没有实现代码块。代码块被分号代替。3.抽象方法必须在派生类中被覆写。但不能把virtua原创 2016-04-21 18:50:09 · 852 阅读 · 0 评论 -
【转载】类和接口的区别
.Net提供了接口,这个不同于Class或者Struct的类型定义。接口有些情况,看似和抽象类一样,因此有些人认为在.Net可以完全用接口来替换抽象类。其实不然,接口和抽象类各有长处和缺陷,因此往往在应用当中,两者要结合来使用,从而互补长短。9HU"lzW?P7K0接下来先说说抽象类和接口的区别。区别一,两者表达的概念不一样。抽象类是一类事物的高度聚合,那么对于继承抽象类的子类来说,对于抽象类原创 2016-04-21 18:50:06 · 255 阅读 · 0 评论 -
接口
接口可以理解为是一种标准,在这种标准中规定了实现其的类及结构体中至少应包含的方法和属性。在C#语言中不允许类的多继承,这是因为传统的多继承带来的问题往往胜过其带来的好处。然而,现实世界里到处都存在着多继承的情况。为了解决这个矛盾,在一些面向对象语言中提出了接口的概念。在C#中,通过接口可以实现多继承的功能。1.接口的声明 访问修饰符 interface原创 2016-04-21 18:50:03 · 298 阅读 · 0 评论 -
委托事件
1,委托是一种引用方法的类型!委托用来关联方法,可以关联一个到多个的方法!+= -=。。。委托由关键子delegate 定义,返回值类型与参数名和函数返回值类型参数名相同!2,委托的几个特点(1)与C++指针类似(2)允许将方法当参数传递(3)可以关联多个方法(4)匿名方法 3,委托关联多种方法4,委托的异步回调5,委托的协变(返回值类型) 逆变(参数)原创 2016-04-21 18:49:44 · 232 阅读 · 0 评论 -
索引器
1,原创 2016-04-21 18:49:41 · 234 阅读 · 0 评论 -
C#中 类的成员
C#中类的成员有 方法, 构造函数(析构函数),字段,属性;对初学者值得一提的是只有类和类成员才有访问修饰符;1,方法。方法又称函数 类中的方法和正常的方法差不多 只是前面有访问修饰符,用的时候用对象名点儿出来;静态的方法不用实例化,非静态的方法必须实例化,静态的方法在程序一旦启动不论是否new其所在类都会驻留内存,对系统的占用相对来说比非静态的方法占用大,但是由于其使用方便,调用快捷,还是很值得原创 2016-04-21 18:49:38 · 1297 阅读 · 0 评论 -
类 对象
1,对象是类 new出来的。。 属性包括两个方法 get set2,方法 方法是通过指定 修饰符 返回值类型 方法名称 参数列表(参数) 方法签名+方法体 (1)形参 实参 类型相匹配obj类型 (2)值类型参数引用类型参数:比如数组,一个改变影响另一个out类型参数:出参 必须在引用的函数中赋值(优点 返回多个返回值)只从本函数传到Main 单向传递参数原创 2016-04-21 18:49:36 · 201 阅读 · 0 评论 -
C#集合
1,/动态数组 ArrayList jihe存值取值 (他的内部封装了一个object数组)容量用Capacity 长度用 count而不用length 用Add添加数据 用下标改变数据2,原理和stringbuild的一样, ArrayList a1 = new ArrayList(); a1.Add(1); a1.Add(2);原创 2016-04-21 18:49:33 · 219 阅读 · 0 评论 -
C# 数组中的数组
1, int[][] arrint = new int[3][];//外部数组3 arrint[0] = new int[] { 1, 2, 3 }; arrint[1] = new int[] { 4, 5 }; arrint[2] = new int[] { 6 }; foreach (int[] i in原创 2016-04-21 18:49:30 · 1050 阅读 · 0 评论 -
C#运算符 string
1,*+-/是一元运算符2,位运算的技巧 (都是2进制) 与遇0为0 或遇1为1 异或同为0 求补全反转 位移最麻烦 除头尾补0(>)3,? : 3元运算符4,string是引用类型 但有保留性和不可变性 string a = "q"; string b = a; b = "asf"; Console.Wri原创 2016-04-21 18:49:27 · 947 阅读 · 0 评论 -
C# 语句异常处理语句
1,try....catch...finally 不会找到逻辑错误,try里面放检测代码,,catch 捕捉到的异常,怎样处理finally不管有没有异常都会执行 try catch finally 3种组合2,finally 很顽强 return后仍然会执行3, 4,excption的用法 exception是所有异常的父类5,自定义异常错误例子:using System;usin原创 2016-04-21 18:49:25 · 1735 阅读 · 0 评论 -
C#语句 运算符 表达式 字符串 编码
1,if else 使用时注意性能!if if 不如if else if2,switch(),while()循环 do while ,foreach()用于数组和集合for(double i=0.1;i3,for (DateTime dt = DateTime.Parse("2014.1.23"); dt Console.WriteLine(dt);Datetime的用法!原创 2016-04-21 18:49:22 · 241 阅读 · 0 评论 -
值类型和引用类型
1,值类型 (数据),引用类型(地址)2, 43, 4,装箱和拆箱装箱是值类型装换成引用类型,拆箱是引用类型转换成值类型 装箱费性能, 如int放入object (泛型性能好) 装箱连类型一起装! int i = 123; object o=i;//装箱 类型也装 double p = (int)o;//拆箱 类型也拆原创 2016-04-21 18:49:20 · 233 阅读 · 0 评论 -
C# 控制台下的常见函数&数据类型
1,Beep的两种重载;2,Console.ReadLine();返回值是string 类型,Console.Read();返回值是int console.ReadKey()返回值是 ConsoleKeyInfo 读一次就结束 它还有个功能Console.ReadKey(true) 不显示输入的字母WriteLine();与Write()的区别;3,Consolecolor 的应用 如Co原创 2016-04-21 18:49:17 · 350 阅读 · 0 评论 -
C#中用来统计你所写的代码总量的代码
1.static 的函数调用起来就不用 new2.using System;using System.Collections.Generic;using System.IO;using System.Linq;using System.Text;using System.Threading.Tasks;//以我的计算机为例namespace pro1{ class Program {原创 2016-04-21 18:49:14 · 1501 阅读 · 0 评论 -
. netframework
1,他由fcl和clr组成 clr是公共语言运行时,2,一次运行两次编译。3,同一解决方案下的两个项目的调用用 process.start(@" 路径")4,#region。。。。#endregion进行折叠.5,待更新。。。原创 2016-04-21 18:49:11 · 352 阅读 · 0 评论 -
数组。。
1,可定义结构体类型的数组。如上回讲到的Goods [] array=new Goods[10];要灵活运用.2,Array是所有数组的鼻祖。3,测试长度array.GetLength(0);的用法,其中0是维度 返回值是整型;而array.Length 直接得到长度, 4,定义数组并初始化 int[] a = new int[2]; int j=a.GetL原创 2016-04-21 18:49:09 · 229 阅读 · 0 评论 -
enum 枚举 重要程度高于 结构体---初学者的记录
1,值类型;2,用法static void Main(string[] args) { student stu1=new student(); stu1.name = "zhangsan"; stu1.sex = sex.男;//注意这里!!!!!!!!!!!!!!!!!! stu1.age =原创 2016-04-21 18:49:06 · 324 阅读 · 0 评论 -
C#中的结构体----面向对象的编程很少用
1,C#中结构体前可加public;可自己定义构造函数且构造函数必须有参;构造函数前必须全部初始化;2,结构体类型,是值类型,自定义类型;通常用来封装小型相关变量;3,带参的构造函数通常有this public Goods(string Name) { this.Count = 20; this.Name =原创 2016-04-21 18:49:03 · 457 阅读 · 0 评论