सब, मेरे पास एक तरीका है जो एक सूची देता है। इस विधि का उपयोग नाम के आधार पर SQL संग्रहीत प्रसंस्करण, दृश्य और कार्य के पैरामीटर को वापस करने के लिए किया जाता है। मैं क्या करना चाहता हूं वस्तुओं की एक सूची बनाएं और इस सूची को कॉलर पर वापस कर दें। विधिसी # जेनिक्स इंस्टेंटेशन
नीचेprivate List<T> GetInputParameters<T>(string spFunViewName)
{
string strSql = String.Format(
"SELECT PARAMETER_NAME, DATA_TYPE FROM INFORMATION_SCHEMA.PARAMETERS " +
"WHERE SPECIFIC_NAME = '{0}' AND PARAMETER_MODE = 'IN';",
spFunViewName);
List<string[]> paramInfoList = new List<string[]>();
DataTable paramDt = Utilities.DTFromDB(conn, "InputParmaters", strSql);
if (paramDt != null)
{
Converter<DataRow, string[]> rowConverter =
new Converter<DataRow, string[]>(Utilities.RowColConvert);
paramInfoList = Utilities.ConvertRowsToList<string[]>(paramDt, rowConverter);
}
else
return null;
// Build the input parameter list.
List<T> paramList = new List<T>();
foreach (string[] paramInfo in paramInfoList)
{
T t = new T(paramInfo[NAME], paramInfo[TYPE], Convert.ToInt32(paramInfo[CHARMAXLEN]));
columnList.Add(column);
}
return columnList;
}
मैं स्पष्ट रूप सेnew
के माध्यम से T
का दृष्टांत नहीं कर सकते और निर्माता के पास, लेकिन यह स्पष्ट मैं क्या करने की कोशिश कर रहा हूँ क्या होना चाहिए। क्या मैं तीन अतिरिक्त तरीकों से जो करना चाहता हूं उसे करने का कोई तरीका है?
नोट। मुख्य मुद्दा यह है कि टी को पारित करने वाले पैरामीटर की संख्या या तो दो या तीन हो सकती है।
आपके समय के लिए धन्यवाद।
संपादित करें: struct
रों मैं उपयोग के रूप में T
बना सकते हैं और मानकों को पारित करने के लिए
public struct Database
{
public string name { get; set; }
public string filename { get; set; }
public List<Table> tables { get; set; }
public List<StoredProcedure> sps { get; set; }
public List<Function> funcs { get; set; }
public List<View> views { get; set; }
public Database(string name, string filename)
{
this.name = name;
this.filename = filename;
}
}
protected internal struct StoredProcedure
{
public string name { get; set; }
public List<string[]> parameters { get; set; }
public StoredProcedure(string name, List<string[]> parameters)
{
this.name = name;
this.parameters = parameters;
}
}
protected internal struct Function
{
public string name { get; set; }
public string output { get; set; }
public List<string[]> parameters { get; set; }
public Function(string name, string output, List<string[]> parameters)
{
this.name = name;
this.output = output;
this.parameters = parameters;
}
}
protected internal struct View
{
public string name {get; set;}
public List<string[]> parameters { get; set; }
public View(string name, List<string[]> parameters)
{
this.name = name;
this.parameters = parameters;
}
}
'टी 'का प्रकार यहां होने की संभावना क्या है? –
@ जोन स्कीट, यह वास्तव में एक 'संरचना' है। मैं डाटाबेस, टेबल इत्यादि दिखाने के लिए एक पुन: प्रयोज्य पेड़ संरचना बनाने का प्रयास कर रहा हूं लेकिन मैं इस प्रक्रिया से प्राप्त जानकारी का उपयोग फिर से करने में सक्षम होना चाहता हूं - इसलिए मैं 'स्ट्रक्चर स्टोर्डप्रोसेसर', 'स्ट्रक्चर फंक्शन' आदि के साथ सिंगलटन पैटर्न का उपयोग करता हूं। । धन्यवाद। – MoonKnight
मुझे लगता है कि "इनपुटपर्मर्स" 'एक टाइपो है? – comecme