1,何时显式实现接口:不想让实现类调用的时候。
代码如下:
public interface IMsgSender
{
void Send(string mes);
}
public class Sender : IMsgSender
{
public void Say()
{
Console.WriteLine("Say Hello");
}
/// <summary>
/// 注意:显式实现的接口方法前不能加public修饰符,
/// 否则会编译错误
/// </summary>
/// <param name="mes"></param>
void IMsgSender.Send(string mes)
{
Console.WriteLine("显式接口:"+mes);
}
{
void Send(string mes);
}
public class Sender : IMsgSender
{
public void Say()
{
Console.WriteLine("Say Hello");
}
/// <summary>
/// 注意:显式实现的接口方法前不能加public修饰符,
/// 否则会编译错误
/// </summary>
/// <param name="mes"></param>
void IMsgSender.Send(string mes)
{
Console.WriteLine("显式接口:"+mes);
}
}
两种调用方式如下:
IMsgSender s2 = new Sender();
s2.Send("imap");//只有这样才能看到Send方法并调用
2,字符编码
- ASCII不能保存中文
- UTF8是变长编码。在对ASCII字符编码时,UTF更省空间,只占1个字节,与ASCII编码方式和长度相同;Unicode在对ASCII字符编码时,占用2个字节,且第2个字节补零。
- UTF8在对中文编码时需要占用3个字节;Unicode对中文编码则只需要2个字节