पक्का। आप "अस्पष्ट संदर्भ" संकलक त्रुटि प्राप्त कर सकते हैं, जब दो वस्तुओं को प्रतिष्ठित नहीं किया जा सकता है। आमतौर पर, आप कोड में पूर्ण पथ निर्दिष्ट कर सकते हैं और यह एक समस्या का कारण नहीं होगा, लेकिन यदि dll पूरी तरह से समान थे, तो आप किसी भी तरह से दो ऑब्जेक्ट के बीच अंतर नहीं कर पाएंगे। Sya हमारे पास दो dll हैं:
System.IO जिसमें फ़ाइल वर्ग है
तथा
MyProject.IO जिसमें एक फ़ाइल वर्ग है
अगर तुम कुछ इस तरह से होते ...
using System.IO;
using MyProject.IO;
...
private void foo()
{
File f = new File();
}
... आपके पास एक अस्पष्ट संदर्भ होगा, क्योंकि यह बताने का कोई तरीका नहीं है कि आप किस फ़ाइल के बारे में बात कर रहे हैं। यह इसे ठीक करेगा:
using System.IO;
using MyProject.IO;
...
private void foo()
{
MyProject.IO.File f = new MyProject.IO.File();
}
एकमात्र तरीका यह तय करना मुश्किल होगा यदि "फाइल" का पथ दोनों विधानसभाओं में समान था, लेकिन इसके लिए अपेक्षित स्थिति की आवश्यकता नहीं होगी जहां दो dll में एक समान नामस्थान संरचना हो। उदाहरण के लिए, ऊपर की मेरी स्थिति कभी नहीं होगी, क्योंकि कोई भी वहां "सिस्टम" (.Net ढांचे के वास्तविक डेवलपर्स के अपवाद के साथ) परियोजना का नाम नहीं देगा।