سؤال

إذا كان لديك نوع غير قابل للتغيير مثل هذا:

struct Point3
{

}

وعضو من الداخل مثل الأصل:

public static const Point3 Origin = new Point3 (0,0,0);

يجب عليك استخدام:

new Point3 (0,0,0)

?

يبدو لي أنه نظرا لأنه لا يمكن تغيير النوع، فلماذا تتمتع العديد من الأصول التي هي نفس الشيء في الأساس؟ مثلما نحن لا نغير 0، أليس كذلك؟

كيفية تحقيق نفس الشيء لأنواع ثابتة؟

هل كانت مفيدة؟

المحلول

public static readonly Point3 Origin = new Point3(0,0,0);

نصائح أخرى

كما ذكر أندرو، لا يمكنك استخدام const لهذا لأنه ليس ثابتا في الوقت الثابت.

لاحظ أنه إذا كنت نكون الذهاب إلى استخدام منشئ مرارا وتكرارا، كنت أفضل حالا (من وجهة نظر الأداء) استدعاء

new Point3()

من

new Point3(0, 0, 0)

يعرف المحول البرمجي أن الإصدار الأول يذهب فقط إلى الذاكرة، ولا يحتاج إلى استدعاء أي رمز.

ومع ذلك، سأذهب جنبا إلى جنب مع توفير Origin عضو واستخدام ذلك في كل مكان بدلا من ذلك، حيثما أمكن :)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top