【发布时间】:2015-10-24 06:31:25
【问题描述】:
我有几个具有不同属性的类,我想对这些类的实例做同样的事情。可以说将它们的属性保存到带有其他信息的文本文件中(我没有该实例中的所有信息,因此我不能使用 ToString() 方法之类的东西 - 我必须在另一个类中使用这些属性)。
以下是两个类的示例:
class Dog
{
public int Height { get; set; }
public string Name { get; set; }
}
class Car
{
public bool IsConvertible { get; set; }
public string VIN { get; set; }
}
在文本文件中,我希望保存如下实例:
20151023;狗; 32 厘米;我的狗;
20151023;车;真的; WP0ZZZ99ZTS392124;
我认为最好为每个支持的类使用特殊的静态类,方法是public static void Write(T) 和public static T Read(string line)。这两种方法在每个类中都有相同的名称,但功能略有不同,所以我认为Interface 或Abstract class 可以工作,但两者都不能与static 方法一起工作。
- 有什么方法可以确保在所有类中都实现了这些静态方法?
- 在这种情况下,使用“经典”类而不是
static类更好吗?
【问题讨论】:
-
听起来像是序列化的工作。
-
我在你的类中没有看到任何标记为
static的东西,你从哪里得到这些静态信息? -
@SteveFenton 这是某种序列化,但我必须将这些对象“序列化”到不同的程序,这些程序对传入数据有严格的规则,我无法通过 XML/二进制序列化来实现这些规则。
-
@RonBeyer 这些类中没有静态信息。我只是认为创建静态辅助类来处理这些类比每次我想保存/加载某些东西时创建辅助类的实例要好。