الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

جطأ في مجمع السي شارب !!!

مغلق
بدأه Dr_HUS في 13 ديسمبر 2003 · 5 رد · 1,124 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

حدا ممكن يصلح الغلط المنطقي الي نتج عن هال الكود ؟؟؟؟؟؟؟؟

namespace RemotingDemo
{
	class TestApp
	{
  static void Main(string[] args)
  {
 	 System.Console.WriteLine("Hello");
  }
	}

	public class System
	{
  public class Console
  {
 	 public static void WriteLine(string msg)
 	 {
    DoImportantWorkInABadlyNamedMethod();
 	 }
  }
	}
}

فيك تستخدم اي مثود متل

System.Console.WriteLine("HUS");
#2

السلام عليكم

أخي البرنامج شغال و مافي أي مشكله

قم بزيارة موقعنا الخاص C# Lover ... الموقع الخاص بمحبي لغة الـ #C العرب

http://arab.csharplover.com

#3

لا أعرف من أين أتيت بهذا الكود، ولكن من الواضح أن كاتبه يريد أن يبرهن على أنه عندما تقوم بتسمية الدوال بطريقة غير جيدة فإن مشاكلا ستواجهك، اذا أردت أن تجعل المجمع لا يخطيء عليك بتعديل الكود كالتالي:

 using System;

namespace RemotingDemo
{
	class TestApp
	{
  static void Main(string[] args)
  {
 	 System.Console.WriteLine("Hello");
  }
	}

	public class System
	{
  public class Console
  {
 	 public static void WriteLine(string msg)
 	 {
    DoImportantWorkInABadlyNamedMethod();
 	 }
 	 public static void DoImportantWorkInABadlyNamedMethod()
 	 {
 	 }
  }
	}
}
#4

اخي فراس نت ,, الكود بيعطي خطأ !! انا لما شقتو للوهلة الاولى ما لقيت فيه اي عيب ,, بس لما حربته على الكومبايلر عطاني رن تايم ايررور فيك اتجرب

اخي BAZRAMIT ممكن اتوضح قصدك بالاستخدام الخاطئ للدوال !!

بالمناسبة ممكن انتا بالغلط حاطط

using system

..

..

System.consol ......

السيستم التاني باستخدام النيم سبس سيستم مالها لزوم ,, خطا بالطبع اكيد

قصة الكود التالي .. مقال وصلني عن Bug بالدوت نيت فرام ورك 1.1 تمام ..

او بالاحرى عن عدة ثغرات ,, كان على كلام الكاتب هاي احداهم ,,

ال Bug موجودة على هال الرابط وهيي بتخص XML

http://www.securityfocus.com/archive/1/347...10/2003-12-16/0

وموقع كاتب المقال

http://www.servergeek.com/

والي حتلاقي الكود فيه . .. انا طرحت الكود في الاعلى قبل المقال عشان كنت حابب افهم وين المشكلة ,, قبل ما حط عن المشكلة نفسها ,,

#5

الكاتب يريد من المقالة أن يثبت أن التلاعب بالـnamespaces يمكن أن ينتج عنه أن المبرمج لا يستطيع أن ينادي الدالة الموجودة في الـnamespaces الأصلية...

فـSystem.Console في المثال السابق namespace فرعي بداخل الـnamespace RemotingDemo وعندما تنادي الدالة System.Console من داخل الـRemotingDemo فإنك لن تحصل عل الدالة الأصلية الموجودة في المكتبة الرئيسية System.Console بل انك تنادي الدالة الموجودة في RemotingDemo.System.Console

ولا يمكنك في هذه الحالة أن تنادي الدالة الموجودة في المكتبة الأصلية...

ولكن سيتم تصحيح هذا الخطأ في النسخة الجديدة من دوت نيت في سي شارب حيث سيكون بإمكانك أن تستحضر الدوال في المكتبات الأساسية باستخدامك الرمز :: الموجود في سي بلس بلس..

على فكرة أنا لم أضع using system عن طريق الخطأ، بل وضعتها لكي أثبت لك أنه بالرغم من اعلانك أنك تستخدم هذا النيمسبيس فإنه لا يمكنك أن تنادي الدوال الموجودة فيه في هذه الحالة النادرة التي يوضحها الكود.

وعلى فكرة أيضا، الكود لا يعطي run time error ولو أرفقت نص الرسالة التي تظهر لك ربما توضح الأمور قليلا، مع أني في الواقع لا أعتقد أن هناك مشكلة في الكود الا انه مكتوب بطريقة فظة فقط لمحاولة ايضاح المفهوم البسيط الذي ذكرته في أعلاه.

#6

شكر ا اخي ,, وضحتلي اشيا كنت ما عارفها ,,

تحياتي

هذا الموضوع مغلق.

مواضيع مشابهة