高手进来解释一下
我今天读了以下2段代码,有所不清楚,望告诉作答.谢谢
using System;
using System.Collections.Generic;
using System.IO;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters;
using System.Runtime.Serialization.Formatters.Binary;
using System.Text;
namespace KPIReportsApp
{
[Serializable]
public abstract class Settings<T>
{
protected abstract T GetDefault();
protected abstract string GetFilename();
protected T Load()
{
if (File.Exists(GetFilename()))
{
BinaryFormatter bf = new BinaryFormatter();
using (FileStream fs = new FileStream(GetFilename(), FileMode.OpenOrCreate))
{
return (T) bf.Deserialize(fs);
}
}
return GetDefault();
}
public void Save()
{
BinaryFormatter bf = new BinaryFormatter();
using (FileStream fs = new FileStream(GetFilename(), FileMode.OpenOrCreate))
{
bf.Serialize(fs, this);
}
}
}
}
using System;
using System.Collections.Generic;
using System.Text;
namespace KPIReportsApp
{
[Serializable]
public class DailyReportFormSettings : Settings<DailyReportFormSettings>
{
public static DailyReportFormSettings Current()
{
return new DailyReportFormSettings().Load();
}
protected override string GetFilename()
{
return "DailyReportFormSettings.cfg";
}
protected override DailyReportFormSettings GetDefault()
{
DailyReportFormSettings def = new DailyReportFormSettings();
def.Cell1 = "D15";
return def;
}
private string cell1;
public string Cell1
{
get { return cell1; }
set { cell1 = value; }
}
}
}
这2段代码的作用是为了保存config而写的.
只是有些基础知识不是很懂.
在定义类的时候用<T>表示什么? 另外,这种方式的定义有什么好处?
Serializable这里就不要解释了,谢谢
using System;
using System.Collections.Generic;
using System.IO;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters;
using System.Runtime.Serialization.Formatters.Binary;
using System.Text;
namespace KPIReportsApp
{
[Serializable]
public abstract class Settings<T>
{
protected abstract T GetDefault();
protected abstract string GetFilename();
protected T Load()
{
if (File.Exists(GetFilename()))
{
BinaryFormatter bf = new BinaryFormatter();
using (FileStream fs = new FileStream(GetFilename(), FileMode.OpenOrCreate))
{
return (T) bf.Deserialize(fs);
}
}
return GetDefault();
}
public void Save()
{
BinaryFormatter bf = new BinaryFormatter();
using (FileStream fs = new FileStream(GetFilename(), FileMode.OpenOrCreate))
{
bf.Serialize(fs, this);
}
}
}
}
using System;
using System.Collections.Generic;
using System.Text;
namespace KPIReportsApp
{
[Serializable]
public class DailyReportFormSettings : Settings<DailyReportFormSettings>
{
public static DailyReportFormSettings Current()
{
return new DailyReportFormSettings().Load();
}
protected override string GetFilename()
{
return "DailyReportFormSettings.cfg";
}
protected override DailyReportFormSettings GetDefault()
{
DailyReportFormSettings def = new DailyReportFormSettings();
def.Cell1 = "D15";
return def;
}
private string cell1;
public string Cell1
{
get { return cell1; }
set { cell1 = value; }
}
}
}
这2段代码的作用是为了保存config而写的.
只是有些基础知识不是很懂.
在定义类的时候用<T>表示什么? 另外,这种方式的定义有什么好处?
Serializable这里就不要解释了,谢谢
...全文
相关推荐
京东豆车脚本,解释一下:就是组队光分京豆,每天有很多这种活动,车头可以获得很多豆豆
解释一下:就是组队光分京豆,每天有很多这种活动,车头可以获得很多豆豆
C#解释一下这个程序代码输出各种颜色.zip
由于所给文件信息中仅包含了标题、描述和压缩包子文件的文件名称列表,且这些内容都指向同一个主题——“C#解释一下这个程序代码输出各种颜色”,但实际并未提供具体的C#程序代码或相关解释。
你能解释一下这段代码的作用吗
标题中的问题“你能解释一下这段代码的作用吗?”通常在编程交流中出现,意味着要解析一段特定的代码逻辑。
JavaScript面试题
问:解释一下什么是事件冒泡和事件捕获? 问:什么是闭包?它有什么作用? 问:解释一下同步和异步编程的区别? 问:如何避免JavaScript中的回调地狱? 问:解释一下JavaScript中的原型继承
解释一下什么是鸽巢原理
鸽巢原理,这一名称源自于一个生动形象的生活场景:假设有一群鸽子和一些鸽巢,如果鸽子的数量超过了鸽巢的数量,那么肯定会有一个鸽巢里至少有两只鸽子。将这一日常观察抽象化并应用到数学领域,便形成了一个具有广泛适用性的数学原理


