CheckedListBox 获取选中项的方法

CheckedListBox是C#中的一个控件,但是它不像其他List中一样获取选中项那么方便,怎么办呢?使用GetItemChecked(index)方法。List<int>result=newList<int>();for(inti=0;i<listBox.Items.Count;i++){if(listBox.GetItemChecked(i)){result.Add(i);}}returnresult;...

简单的连接 List<int> 各项为字符串的方法

用ConvertAll一句代码将List<int>用逗号连接为字符串一文中介绍了用一句话将List<int>中的各项连接为一个字符串,其实这是个笨办法,更简单的方法:List<int>list=newList<int>();list.Add(2);list.Add(1);list.Add(1);strings=String.Join<int>(",",list);用String.Join<int>指定泛型。但是,别高兴得太高,这是.NETFramework4.0的内容,如果你是3.5,那么会出错:非泛型方法“string.Join(string,string[])”不能与类型实参一起使用。...

接口方法、抽象方法、虚方法-继承类方法返回值可以与基类或接口方法返回值不一样吗?

接口方法、抽象方法、虚方法-可以使用静态吗?接口方法、抽象方法、虚方法-继承类方法返回值可以与基类或接口方法返回值不一样吗?接口方法、抽象方法、虚方法在继承类中的方法的返回值可以与基类或接口的方法的返回值不一样吗?不可以。顺便说一句,接口中没有构造函数。接口方法、抽象方法、虚方法-可以使用静态吗?接口方法、抽象方法、虚方法-继承类方法返回值可以与基类或接口方法返回值不一样吗?...

接口方法抽象方法、虚方法-可以使用静态吗?

接口方法抽象方法、虚方法-可以使用静态吗?接口方法抽象方法、虚方法继承方法返回值可以与基类或接口方法返回值不一样吗?在C#中,接口方法抽象方法、虚方法可以是静态的吗?均不可以,如下写法是错误的。interfaceITree{staticstringGet(intid);}publicabstractclassTree{publicstaticabstractstringGet(intid);publicstaticvirtualstringGet(stringkey){//省略}}接口方法抽象方法、虚方法-可以使用静态吗?接口方法抽象方法、虚方法继承方法返回值可以与基类或接口方法返回值不一样吗?...

多线程与异步-将参数传入线程的三种方法

多线程与异步-什么是线程安全?多线程与异步-C#如何使用线程多线程与异步-关于让线程“等等”有关的几个方法多线程与异步-将参数传入线程的三种方法多线程与异步-C#异步调用多线程与异步-异步调用与多线程的区别多线程与异步-异步调用WebService多线程与异步-Task.Run、await、async以异步方式执行这三种方法是:匿名方法、object参数、实例方法,下面的示例分别为thread1、thread2、thread3演示。privatevoidbutton1_Click(objectsender,EventArgse){Datadata=newData();data.Name="ITPOW";Threadthread1=newThread(delegate(){Console.WriteLine(data.Name);});thread1.Start();Threadthread2=newThread(MyThread);thread2.Start(data);Threadthread3=newThread(data.MyThread);thread3.Start();}pu...

线程异步-关于让线程“等等”有关的几个方法

线程异步-什么是线程安全?多线程异步-C#如何使用线程线程异步-关于让线程“等等”有关的几个方法多线程异步-将参数传入线程三种方法多线程异步-C#异步调用多线程异步异步调用与多线程的区别多线程异步异步调用WebService多线程异步-Task.Run、await、async以异步方式执行myThread.Join当前线程调用myThread子线程的Join,则当前线程阻塞,直到myThread完成或超时再继续。myThread.Suspend挂起myThread线程,如果之前已经挂起,则不起作用。微软已经不推荐使用该方法,因为实际中它很容易造成死锁,推荐使用Monitor、Mutex、Event和Semaphore等类来实现同步。myThread.Resume继续已挂起的线程,如果线程没有挂起,则出错。微软已经不推荐使用该方法,因为实际中它很容易造成死锁,推荐使用Monitor、Mutex、Event和Semaphore等类来实现同步。myThread.Interrupt中止处于Wait或者Sleep或者Join线程状态的线程。Thread.Sleep将当前...

用覆盖实现基类方法访问派生类方法

看到有人问基类方法怎么访问派生类方法,有人说这是不现实的,有人说把指针传过去(C++),有人说设计不合理。其实用覆盖,是可以实现基类访问派生类方法的。publicclassC1{publicvirtualstringF1(){return"C1F1";}publicstringF2(){returnF1();}}publicclassC2:C1{publicoverridestringF1(){return"C2F1";}}再看调用代码C2c2=newC2();Console.WriteLine(c2.F2());Console.WriteLine(((C1)c2).F2());显示结果都是C2F1。说明基类方法F2在这种情况下,调用的是派生类的F1方法(对于类内部来说,基类的F1同样已经被覆盖)。returnF1();改成returnthis.F1()呢?一样的,前者本来就是省略了this的。那么派生类中F1调用base.F1(),是否调用到基类的F1呢?当然是了。...

C# 中 List 的 Capacity、Count 属性和 Count 方法有什么区别?

Capacity与CountCapacity是列表之前设定的容量值;Count是实际的元素个数。Capacity总是大于或等于Count,当Count超过Capacity后,又自动扩容以装下新的元素。Count属性与Count方法Count方法如果不带参数,则和Count属性一样,但若带参数,功能就强大了,比如下面的代码查询>3的元素的个数(C#3.0,即 .NETFramework3.5中有效):usingSystem.Linq;//这个命名空间不能少List<int>l1=newList<int>();l1.Add(1);l1.Add(2);l1.Add(3);l1.Add(4);l1.Add(5);Response.Write(l1.Count(n=>n>3));//显示为2不仅在List中,在IEnumerable<TSource>类型的对象上都可以使用,请参见C#3.0-Lambda。...

C# 方法、函数的值如何传递

usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Web;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;publicpartialclassParam:System.Web.UI.Page{protectedvoidPage_Load(objectsender,EventArgse){C1c1=newC1();Response.Write(c1.P);//1Change(c1);Response.Write(c1.P);//2Change2(c1);Response.Write(c1.P);//2,Change2的c1=newC1();改变不了外界的c1intm=1;Response.Write(m);//1Change(m);Response.Write(m);//1}privatevoidChange(C1c1){c1.P*=2;}privatevoidChange2(C1c1){c1=newC1();}privatevoidChan...
代码星球 代码星球·2023-04-16

C# 3.0 -扩展方法

C#3.0-var隐式类型声明C#3.0-自动属性实现C#3.0-对象初始化设置C#3.0-集合初始化设置C#3.0-匿名类型C#3.0-扩展方法C#3.0-partial分部(类型)C#3.0-LambdaC#3.0-{get;set;}默认值C#3.0-{get;set;}默认值2C#3.0-yieldJavaScript中可用prototype对方法进行扩展,比如日期对象本来没有方法getIsLeapYear(),可以通过prototype来扩展使日期对象有这个功能。C#3.0中也实现了扩展方法的功能。publicstaticclassStringExtensions{   publicstaticstringHeiHei(thisstringstr)   {       returnstr+"嘿嘿";   }}publicpartialclass_Default:System.Web.UI.Page{ &nbs...
代码星球 代码星球·2023-04-16

C# 中获取应用程序路径的方法(集合)

stringstr1=Process.GetCurrentProcess().MainModule.FileName;//可获得当前执行的exe的文件名。stringstr2=Environment.CurrentDirectory;//获取和设置当前目录(即该进程从中启动的目录)的完全限定路径。//备注按照定义,如果该进程在本地或网络驱动器的根目录中启动,则此属性的值为驱动器名称后跟一个尾部反斜杠(如“C:”)。如果该进程在子目录中启 动,则此属性的值为不带尾部反斜杠的驱动器和子目录路径(如“C:mySubDirectory”)。stringstr3=Directory.GetCurrentDirectory();//获取应用程序的当前工作目录。stringstr4=AppDomain.CurrentDomain.BaseDirectory;//获取基目录,它由程序集冲突解决程序用来探测程序集。stringstr5=Application.StartupPath;//获取启动了应用程序的可执行文件的路径,不包括可执行文件的名称。stringstr6=Application....

C# 类教程-继承:方法重载

C#类教程-类C#类教程-类成员:字段(域)、属性、索引C#类教程-类成员:方法、事件C#类教程-类成员:运算符重载与索引器C#类教程-类成员:构造函数和析构函数C#类教程-类成员:嵌套类型C#类教程-访问修饰符与可访问性级别C#类教程-继承C#类教程-继承:方法重载C#类教程-继承:隐藏(new)C#类教程-继承:重写(virtual与override)C#类教程-继承:抽象(abstract)C#类教程-多态性我们推荐您阅读同名文章:new、virtual、override、abstract等-重载,其总结性更强。方法重载并不是类继承中的内容,只是它容易和重写等混淆,所以放在一起谈谈。什么是重载呢,举个例子,我们在应用System.IO.File.Create()方法时,往往可以选择几种参数,这是就方法的重载,同一个作用域、同一个方法名称、具有不同的参数类型或参数个数,在调用方法时,根据参数自动决定使用哪一个方法。示例public string GetString(){    //...}public strin...
代码星球 代码星球·2023-04-16

C# 类教程-类成员:方法、事件

C#类教程-类C#类教程-类成员:字段(域)、属性、索引C#类教程-类成员:方法、事件C#类教程-类成员:运算符重载与索引器C#类教程-类成员:构造函数和析构函数C#类教程-类成员:嵌套类型C#类教程-访问修饰符与可访问性级别C#类教程继承C#类教程继承方法重载C#类教程继承:隐藏(new)C#类教程继承:重写(virtual与override)C#类教程继承:抽象(abstract)C#类教程-多态性方法方法”是包含一系列语句的代码块,方法可以有返回值,如果没有返回值,则应该在方法名称前冠以void表示无返回值。关于方法请参见C#方法-参数、C#方法-返回值。本文写得有点复杂,要快速了解,可先参考:一个简明的C#事件示例。事件在发生其他类或对象关注的事情时,类或对象可通过事件通知它们。发送(或引发)事件的类称为“发行者”,接收(或处理)事件的类称为“订户”。publicpartialclassForm1:Form{publicForm1(){InitializeComponent();}privatevoidForm1_Load(objectsender,EventAr...

C# 方法-参数

C#方法-返回值C#方法-参数C#方法参数的基本结构为:方法名称(参数类型参数值[,参数类型参数值...])输入参数C#中方法参数无默认值,可以用重载代替默认值功能。无修饰符的情况下,参数值始终按值传递,不论传递的参数类型是值类型还是引用类型,而VB中默认情况下是按引用传递。也就是说方法对参数值的修改不会影响到方法之外的变量。质疑:既然是按值传递,为什么我在传递一个对象时,对该对象的修改影响到了外部的对象?强调一遍,不论是值类型还是引用类型,默认都是按值传递的。对于引用类型,传递时,复制的是引用地址,并不是复制的引用地址的数据,所以方法体内对引用地址数据的修改影响到了方法外的地址数据。string是个特例,尽管是引用类型,仍按值类型的形式传递。引用参数我们可以通过方法返回值,有时需要返回多个值时,利用引用参数较为方便。引用参数如同其它语言中的输入输出参数,调用者必须初始化变量。voidFoo(refintv){   v=3;}voidPage_Load(objectsender,EventArgse){   intn=0;&n...
代码星球 代码星球·2023-04-16

C# 方法-返回值

C#方法-返回值C#方法参数我们将类中的自定义“函数”称为“方法”,由于C#是完全面向对象的语言,同时为了便于解释今后的C#类,我们这里用“方法”来称呼“函数”。C#方法基本结构为返回值类型方法名称(参数列表){   方法体}VB中,Function表示有返回值的方法,用Sub表示无返回值的过程,C#中都称之为方法,只是有有返回值和无返回值之分。有返回值的方法“返回值类型”必须具备。方法体中必须执行return语句,return后跟返回值,执行return语句后立即中止该方法执行并返回值。无返回值的方法“返回值类型”必须是void。方法体中可以有return语句,但return后不跟返回值,如果有return语句,则执行到return语句时将立即中止该方法执行。C#方法-返回值C#方法参数...
代码星球 代码星球·2023-04-16
首页上一页...56789...下一页尾页