[C#] 纯文本查看 复制代码 24、C#中接口和抽象类的区别,一个类只能继承一个抽象类,但可以继承多个接口,接口是比抽象类更抽象的层次,没有任何实现,当继承的多个接口中有形同的方法名时用显示接口实现,
接口定义时方法没有访问修饰符,但是interface关键字前可以加修饰符
interface ICarnivore //接口的定义。
{
bool IsHungry { get; }
Animal Hunt();
void Eat(Animal victim);
}
public class Lion: ICarnivore //接口的继承实现。
{
private bool hungry;
public bool IsHungry {
get { return hungry; }
}
public Animal Hunt (){
…
}
}
public interface IPictManip
{
void ApplyAlpha();
} 这两个接口是包含同样方法的接口,下面介绍怎样进行显示接口实现。
public interface IPict
{
void ApplyAlpha();
}
public class MyImages : BaseIO, IPict, IPictManip
{
public int DeleteImage()
{
Console.WriteLine(“DeleteImage 实现!");
return(5);
}
public void ApplyAlpha()
{
Console.WriteLine(“ApplyAlpha 实现!");
}
void IPict.DisplayImage()
{
Console.WriteLine(“DisplayImage 的 IPict 实现");
}
void IPictManip.DisplayImage()
{
Console.WriteLine(“DisplayImage 的 IPictManip 实现");
}
}
static void Main(string[] args)
{
MyImages objM = new MyImages();
IPict Pict = objM; //IPict 引用
Pict.DisplayImage();
IPictManip PictManip = objM; //IPictManip 引用
PictManip.DisplayImage();
}
25、自创保留小数点后固定位数浮点数。
假如三个浮点数93 94 96求三个数的平均数94.3333333333,假如想保留小数点两位怎么做呢,方法,string str=Convert.Tostring(average);//将平局数先转化为字符串
然后int j=str.IndexOf('.');//找到小数点的位置。j=j+3;//由保留小数点后长度+1+j(自己可以验证一下);str=str.Substring(0,j);//获得从第0个字符j长度的子串,
此时str就是小数点后保留两位了。此时并没有四舍五入。字符串中的每个字符不能+1等因为是直读的,可以将str每个字符都复制到一个字符数组中,char[]c=str.ToCharArry();
j=str.IndexOf('.');j=j+3(这是小数点后第三位的位置);if(c[j]>='5'){c[j-1]=c[j-1]+1;},然后将字符数组的从第0个开始长度为j的组合成为字符串,str=new string(c,0,j);
此时的str就是四舍五入的精确到小数点后两位的浮点数了;
26、C#中关于String类型的常用方法 2010-09-10 22:28:00| 分类: 默认分类 | 标签: |字号大中小 订阅 .
Equals(string value)
返回一个BOOL型,比较是否相等,和"=="类似
Compareto(string value)
判断大小,大返回1 小返回-1 相等返回0
IndexOf(string value)
在当前字符串里找到这个字符,从第一个开始找,找到就返回第一次找到所在的索引,如果找不到返回-1
例: 1123 如果找1的话 返回0
LastIndexOf(string value)
和上面一样,不过是从后往前找,返回第一次所找到的索引
例:1123 如果找1的话 返回1
Join(string value,string[] string,int statindex,int count) //后面两个参数一个是开始的索引,一个是
作用的数量
这个方法和其他方法不一样,调用的时候是从String调用出来,作用就是把数组通过一个字符串连接起来返回一个字符串
string[] ary={"a","b","c"};
string result=String.Join("_",ary);
最后result的值为 a_b_c 通过"_"连接起来了
Split(char value)
将一个string类型用char分开.
例:
string[] ary;
string str2;
string str1="a_b_c_d";
ary=str1.Split('_'); //注意方法的参数是一个Char类型,返回的是一个数组
foreach(string s in ary)
{
str2+=s;
}
最后str2的值为abcd
SubString(int index,int length)
从指定的位置截取指定长度的字符串
String str1="abcdefg";
str1.SubString(1,2);
str1的结果就是bc
str1.SubString(2,3);
就是cde 2表示索引位置,3表示长度
ToLower();
全部转换为小写
ToUper();
全部转换为大写
Trim();
去掉前后空格
27、在窗体程序假如一个显示学生信息的窗体,每增加一个学生要统计学生的个数,可以再program.cs中添加一个静态类,里面只有一个静态变量
如下,这样在Form.cs中直接用Count.Count1++就可以显示个数了。
public static class Count
{
private static int count = 0;
public static int Count1
{
get
{
return count;
}
set
{
count = value;
}
}
} [/mw_shl_code][/mw_shl_code] |