هل كتلة جافا ساكنة تعادل مُنشئًا ثابتًا؟
-
20-09-2019 - |
سؤال
ما هو الفرق الحقيقي بين مُنشئ C# الثابت وكتلة جافا الثابتة؟
كلاهما يجب أن يكون بلا معلمة. يسمى كلاهما مرة واحدة فقط ، عندما يتم استخدام الفئة ذات الصلة لأول مرة.
هل أفتقد شيئًا ، أم أنها نفس الشيء ، فقط بأسماء مختلفة؟
المحلول
فهي مكافئة ، باستثناء أن فئة C# يمكن أن تحتوي فقط على مُنشئ ثابت واحد (بالإضافة إلى مُهيئات الحقل الثابتة).
أيضا ، في C#، أ static
سوف يطبق المنشئ beforefieldinit
علَم.
نصائح أخرى
يوضحون نفسه ، يوضح المثال التالي ، أن C# Static Constructor يعمل نفس الكتلة الثابتة في Java
protected Singleton()
{
Console.WriteLine("Singleton constructor");
}
private static readonly Singleton INSTANCE;
static Singleton() {
try {
INSTANCE = new Singleton();
}
catch(Exception e) {
throw new Exception();
}
}
نعم ، إنها تعادل نقطة أخرى هي أن Java لا تدعم مُنشئًا ثابتًا ولكنها تدعم الكتلة الثابتة و C# دعم مُنشئ ثابت.
هم ليسوا.
في C#، هناك كتل يمكن فقط عقد مُنشئين. في Java ، يمكنك تنفيذ البيانات.
لا تنتمي إلى StackOverflow