से कक्षा गुणों का नाम, विधियों का नाम और फ़ील्ड का चयन करें, मैं मिलान करना चाहता हूं (कक्षा फ़ाइल से चयन करें) विधियों का नाम, गुणों का नाम और फ़ील्ड नाम।सी # रेगेक्स - कक्षा फ़ाइल (.cs)
यह उदाहरण वर्ग है:
class Perl
{
string _name;
public string Name { get; set; }
public Perl()
{
// Assign this._name
this._name = "Perl";
// Assign _name
_name = "Sam";
// The two forms reference the same field.
Console.WriteLine(this._name);
Console.WriteLine(_name);
}
public static string doSomething(string test)
{
bla test;
}
}
मैं तरीकों के लिए कोड मिला:
(?:public|private|protected)([\s\w]*)\s+(\w+)\s*\(\s*(?:\w+\s+(\w+)\s*,?\s*)+\)
और मुझे पास प्रश्न:
- इस ऊपर regex कोड सभी तरीकों और यह हो जाता है बहुत अच्छी तरह से काम करता है लेकिन भी मैं इसे विधि नाम चुनना चाहता हूं लेकिन पैरामीटर के बिना और एक्सेसर्स। मेरी कोड परिणाम का उपयोग करेंगे तो exaplmce वर्ग से:) पर्ल ( और DoSomething(): सार्वजनिक पर्ल() और सार्वजनिक स्थिर DoSomething (स्ट्रिंग परीक्षण) लेकिन मैं परिणाम उस तरह चाहते हैं। तो - मेरा कोड अच्छा मेल खाता है लेकिन मैं परिणाम को प्रदर्शित करना चाहता हूं जैसे कि पिछले वाक्य में लिखा था।
- गुणों का चयन कैसे करें? परिणाम प्रदर्शित के साथ: प्रकार और संपत्ति नाम। तो एक्स्पल क्लास परिणाम से: स्ट्रिंग नाम
- परिणाम के साथ फ़ील्ड का चयन कैसे करें: field_name टाइप करें। बाहर मामले में यह हो जाएगा: स्ट्रिंग नाम_
[यह SO उत्तर] का डुप्लिकेट हो सकता है (http://stackoverflow.com/a/11647554/1495442) – Ria
क्या यह कोड फ़ाइल पर रेगेक्स के बजाय संकलित कक्षा पर प्रतिबिंब का उपयोग करने के लिए समझ में आता है? आपको अधिक विश्वसनीय परिणाम मिलेंगे (यानी आपको चिंता करने की ज़रूरत नहीं है कि क्या आपका रेगेक्स कमांड हर संभावित मामले को कवर करता है), और इसका उपयोग किसी भी .NET भाषा के साथ किया जा सकता है, न केवल सी #। –
तो मुझे .cs वर्ग फ़ाइलों के साथ फ़ोल्डर मिला। क्या मैं इसे "हवा में" संकलित कर सकता हूं और फिर प्रतिबिंब का उपयोग कर सकता हूं? कक्षा को गतिशील रूप से संकलित कैसे करें उदाहरण के लिए एक ऐसा फ़ंक्शन है जिसका मैं उपयोग कर सकता हूं? उदाहरण के लिए। बटन पर चयनित फ़ोल्डर में सभी सीएस फाइलों को कॉमाइल पर क्लिक करें? – born2fr4g