1: 文件设置为只读比可读可写更快,性能更好吗??2: 多层继承是否会影响性能?3: 变化区域允许代码重复,因为代码重复的地方是极容易变化的地方,而2个类在某处代码重复,但是它们变化不同,所以这个时候就应该允许它们暂时的重复, 过度抽象很容易复杂化问题.4: 微软为什么不提供强力的数据存储读取技术呢?? 他们显然是有这个技术实力的,但是它们为什么不做呢??
有很多时候,我们要完全保护数据现场,使得下一次加载时接着上次再来,而不是重头再来.
比如: list<list<int>> mz=new list<list<int>>();
本次执行后,mz.Count=15;
其中 mz[0].Count=x1;mz[2].Count=x2;mz[3].Count=x3.........那么只需要执行mz.Save(filepath),就可以将这些数据保存到一个指定路径的文件中.
而下一次执行程序时,只需要mz.Load(filepath),就可以读取到这些数据,而不使用该方法,就可以重头再来.5: T不能转化为long, 我有一种需求,要求针对int long 的某一层次执行相同的操作,而int long的底层函数是不同的,也就是比如:底层函数不同.
public void intDEL(int ma){ ...} 它们名字相同,但是内部代码不同
public void intDEL(long ma){ ...}上层函数操作相同:public void numDEL(T ma)
{
intDEL(ma) //我希望程序能够自动检测出,当T为int时,调用intDEL(int ma)
// 当T为long时,调用 intDEL(long ma)
//但是程序报错,表示T无法转化为int//这个操作函数很大,我不希望把它的代码重复写一次,因为这样的上层函数很多.
//请问我该如何实现用同一个函数完成对int和long的相同操作呢??
//当前操作版本: C#2.0 是不是4.0的运行时检测机制就允许这样做呢???
}
有很多时候,我们要完全保护数据现场,使得下一次加载时接着上次再来,而不是重头再来.
比如: list<list<int>> mz=new list<list<int>>();
本次执行后,mz.Count=15;
其中 mz[0].Count=x1;mz[2].Count=x2;mz[3].Count=x3.........那么只需要执行mz.Save(filepath),就可以将这些数据保存到一个指定路径的文件中.
而下一次执行程序时,只需要mz.Load(filepath),就可以读取到这些数据,而不使用该方法,就可以重头再来.5: T不能转化为long, 我有一种需求,要求针对int long 的某一层次执行相同的操作,而int long的底层函数是不同的,也就是比如:底层函数不同.
public void intDEL(int ma){ ...} 它们名字相同,但是内部代码不同
public void intDEL(long ma){ ...}上层函数操作相同:public void numDEL(T ma)
{
intDEL(ma) //我希望程序能够自动检测出,当T为int时,调用intDEL(int ma)
// 当T为long时,调用 intDEL(long ma)
//但是程序报错,表示T无法转化为int//这个操作函数很大,我不希望把它的代码重复写一次,因为这样的上层函数很多.
//请问我该如何实现用同一个函数完成对int和long的相同操作呢??
//当前操作版本: C#2.0 是不是4.0的运行时检测机制就允许这样做呢???
}
解决方案 »
- Winform进度条问题
- c#中datagridview样式怎么设置?
- 请教怎么使用dotnetbar的gaugeControl控件
- 奇怪,程序在debug调试下速度很快,生成exe后反而卡住不动了.....
- NHibernate 查询应该如何写
- 如何在线程中让progressBar随线程状态变化,并加入一个GIF动画(100分)
- 循环读取一个table里面的每行每列的值,当读取到一个image类型的列怎样把其转换为字串
- 请教:想在datagrid上,鼠标点击一行,产生一种颜色dg_ItemDataBound()事件怎么写?
- WinForms
- 如何设置一个form,使其去掉右上角的“最小化”“还原”“关闭”这三个按钮,其他样子完全不变。
- 菜鸟提问二
- .net控制台应用程序怎么发布的?
编译多态是指要调用那种方法由编译器来选择,也就是说代码没有执行,你就能推断出来要调用那种方法。(运行的多态主要通过继承、接口实现来达到。)
要想自动选择,入些代码才行
比如
public void numDEL(T ma)
{
if(m is typeof(int))
{
intDEL((int)m);
}
else if(m is long)
{
intDEL((long)m);
}
...
}
或者写一个泛型方法intDEL<T>(T m),调用时直接可以
public void numDEL(T ma)
{
intDEL<T>(m);
}
BinaryFormatter.Serialize(Stream, obj)和BinaryFormatter.Deserialize(Stream);
只要是被定义了SerializableAttribute属性的类型实例都可以被序列化,
比如
[SerializableAttribute]
public class a
{
int m;
}
一些常用的数据结构都设置了SerializableAttribute属性(你可以F12看一下)。