当前位置:  编程技术>.net/c#/asp.net
本页文章导读:
    ▪C#显式接口实现      如果类实现两个接口,并且这两个接口包含具有相同签名的成员,那么在类中实现该成员将导致两个接口都使用该成员作为它们的实现。例如:interface IControl{ void Paint();}interface ISurface{ voi.........
    ▪C# 类 class      类是使用关键字 class 声明的,如下面的示例所示:class TestClass{ // Methods, properties, fields, events, delegates // and nested classes go here.} 下面的示例说明如何声明类的字段、构造函数和方法。.........
    ▪C#中添加文本框的上标及文字大小      最近在做一个项目时遇到需要在文本框中进行上下标的处理,单纯的文本控件TextBox满足不了这个功能,必须使用RichTextBox富文本控件来实现,具体效果如下:未设置上标字体大小前:设置上标.........

[1]C#显式接口实现
    来源:    发布时间: 2013-10-28

如果类实现两个接口,并且这两个接口包含具有相同签名的成员,那么在类中实现该成员将导致两个接口都使用该成员作为它们的实现。例如:

interface IControl
{
void Paint();
}
interface ISurface
{
void Paint();
}
class SampleClass : IControl, ISurface
{
// Both ISurface.Paint and IControl.Paint call this method.
public void Paint()
{
}
}

然而,如果两个接口成员执行不同的函数,那么这可能会导致其中一个接口的实现不正确或两个接口的实现都不正确。可以显式地实现接口成员 -- 即创建一个仅通过该接口调用并且特定于该接口的类成员。这是使用接口名称和一个句点命名该类成员来实现的。例如:

public class SampleClass : IControl, ISurface
{
void IControl.Paint()
{
System.Console.WriteLine("IControl.Paint");
}
void ISurface.Paint()
{
System.Console.WriteLine("ISurface.Paint");
}
}

类成员 IControl.Paint 只能通过 IControl 接口使用,ISurface.Paint 只能通过 ISurface 使用。两个方法实现都是分离的,都不可以直接在类中使用。例如:

SampleClass obj = new SampleClass();
//obj.Paint(); // Compiler error.

IControl c = (IControl)obj;
c.Paint(); // Calls IControl.Paint on SampleClass.

ISurface s = (ISurface)obj;
s.Paint(); // Calls ISurface.Paint on SampleClass.

显式实现还用于解决两个接口分别声明具有相同名称的不同成员(如属性和方法)的情况:

interface ILeft
{
int P { get;}
}
interface IRight
{
int P();
}

为了同时实现两个接口,类必须对属性 P 和/或方法 P 使用显式实现以避免编译器错误。例如:

class Middle : ILeft, IRight
{
public int P() { return 0; }
int ILeft.P { get { return 0; } }
}
 

本文链接


    
[2]C# 类 class
    来源:    发布时间: 2013-10-28

类是使用关键字 class 声明的,如下面的示例所示:

class TestClass
{
// Methods, properties, fields, events, delegates
// and nested classes go here.
}
 

下面的示例说明如何声明类的字段、构造函数和方法。该例还说明了如何实例化对象及如何打印实例数据。在此例中声明了两个类,一个是 Child 类,它包含两个私有字段(name 和 age)和两个公共方法。第二个类 TestClass 用来包含 Main。

class Child
{
private int age;
private string name;

// Default constructor:
public Child()
{
name = "N/A";
}

// Constructor:
public Child(string name, int age)
{
this.name = name;
this.age = age;
}

// Printing method:
public void PrintChild()
{
Console.WriteLine("{0}, {1} years old.", name, age);
}
}

class StringTest
{
static void Main()
{
// Create objects by using the new operator:
Child child1 = new Child("Craig", 11);
Child child2 = new Child("Sally", 10);

// Create an object using the default constructor:
Child child3 = new Child();

// Display results:
Console.Write("Child #1: ");
child1.PrintChild();
Console.Write("Child #2: ");
child2.PrintChild();
Console.Write("Child #3: ");
child3.PrintChild();
}
}
/* Output:
Child #1: Craig, 11 years old.
Child #2: Sally, 10 years old.
Child #3: N/A, 0 years old.
*/

注意:在上例中,私有字段(name 和 age)只能通过
Child 类的公共方法访问。例如,不能在 Main
方法中使用如下语句打印 Child 的名称:

Console.Write(child1.name); // Error

 

本文链接


    
[3]C#中添加文本框的上标及文字大小
    来源:    发布时间: 2013-10-28

最近在做一个项目时遇到需要在文本框中进行上下标的处理,单纯的文本控件TextBox满足不了这个功能,必须使用RichTextBox富文本控件来实现,具体效果如下:

未设置上标字体大小前:设置上标的字体大小后

具体的代码如下:

            this.richTextBox1.SelectedText = "mm";
            this.richTextBox1.Font = new Font("宋体", 8, FontStyle.Regular);
            this.richTextBox1.SelectionCharOffset = 3;   //位移的像素,正数为上移,负数为下移         
            this.richTextBox1.SelectedText = "2";

代码很简单,但是有个注意事项:this.richTextBox1.Font = new Font("宋体", 8, FontStyle.Regular);此行代码的位置很关键,如果在最后一行或者第一行显示,那么整个richTextBox1的字体大小都是8了,整个显示都很小;如果不设置,默认的字体是10号字体,显示的上面的那个2很大,效果不好如上图所示。

本文链接


    
最新技术文章:
▪C#通过IComparable实现ListT.sort()排序
▪C#实现对Json字符串处理实例
▪Winform实现抓取web页面内容的方法
▪Winform实现将网页生成图片的方法
▪C#控制台程序中处理2个关闭事件的代码实例
▪WinForm实现同时让两个窗体有激活效果的特效...
▪WinForm实现拦截窗体上各个部位的点击特效实...
▪用C#的params关键字实现方法形参个数可变示例
▪C#判断某程序是否运行的方法
▪C#验证码识别基础方法实例分析
▪C#通过WIN32 API实现嵌入程序窗体
▪C#实现获取鼠标句柄的方法
▪C#事件处理和委托event delegate实例简述
▪C#获取程序文件相关信息的方法
▪C#中的除法运算符与VB.NET中的除法运算符
▪ASP.NET MVC 5使用X.PagedList.Mvc进行分页教程(PagedLi...
▪Base64编码解码原理及C#编程实例
▪C#实现的优酷真实视频地址解析功能(2014新算...
▪C#和SQL实现的字符串相似度计算代码分享
▪C#使用Word中的内置对话框实例
▪C#反射之基础应用实例总结
▪C#生成单页静态页简单实例
▪C#实现SMTP邮件发送程序实例
▪C#实现随鼠标移动窗体实例
▪C#使用GDI+创建缩略图实例
▪C#实现通过模板自动创建Word文档的方法
▪C#中Response.Write常见问题汇总
▪C#中多态、重载、重写区别分析
▪WinFrom中label背景透明的实现方法
▪C#中out保留字用法实例分析
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3