我正在嘗試爲包含SQL查詢結果的XML字符串創建解析器框架。目的是從泛型類繼承,泛型類使用列數據類型實例化。所包含的代碼適用於單列變體。將有兩列的額外的類,等等。如何指定C#泛型類型必須支持Parse(string)?
我需要能夠指定通用類型必須支持解析(字符串)方法。我該怎麼做呢?
abstract class OneColumnParser<Col1>
{
abstract string Column1;
List<Col1> ParseQueryResult(string queryResult)
{
XmlDocument xDoc = new XmlDocument();
xDoc.LoadXml(queryResult);
List<Col1> results = new List<Col1>();
foreach (XmlNode xNode in xDoc.GetElementsByTagName(Column1))
{
results.Add(Col1.Parse(xNode.InnerText));
}
}
}
當我編譯上面,我得到「‘Col1中’是‘類型參數’,這是不在給定上下文中有效」關於results.Add()線,因爲我還沒有指定的該類型必須支持該方法。但是如何?
'Parse()'是一個靜態方法,所以直接回答:你不行。 –
您打算在此支持哪些類型的產品?什麼類型是「結果」? –
簡單的;主要是字符串,整數,布爾值。每列都是單一類型的,但我希望能夠支持多列查詢,其中列是不同類型的 - 但每個列支持Parse()。 – Uffe