Инициализация в конструкторе или теле класса ? - C#

Узнай цену своей работы

Формулировка задачи:

Вопрос я думаю достаточно нубский, но google не помог. например есть класс
public class Point
{
   public int X {get; set;}
   public int Y {get; set;}
}
как будет правильнее
public class ShapeCircle
{
   public Point Center;
   public ShapeCircle(int x, int y)
   {
      Center = new Point();
      Center.X = x;
      Center.Y = y;
   }
}
или так
public class ShapeCircle
{
   public Point Center = new Point();
   public ShapeCircle(int x, int y)
   {
      Center.X = x;
      Center.Y = y;
   }
}
и в чём разница инициализации экземпляра Сenter в теле класса или конструкторе класса. и в каких случаях тот или иной способ предпочтительнее. в документации по С++ нашёл что-то типа порядка инициализации, но честно говоря не стал тратить времени и засорять свой мозг, и так там скоро паштет будет прошу пояснить или дать ссылки на статейку проясняющая этот вопрос. ps учусь сам, поэтому переживаю что упускаю какие-то важные аспекты теории.

Решение задачи: «Инициализация в конструкторе или теле класса ?»

textual
Листинг программы
using System;
using System.Collections.Generic;
 
namespace ConsoleApplication
{
    public struct Point
    {
        public int X { get; set; }
        public int Y { get; set; }
    }
 
    public class ShapeCircle
    {
        public Point Center { set; get; }
 
        public ShapeCircle(int x, int y) {
            Center = new Point {
                X = x,
                Y = y
            };
        }
    }
 
    public class Program
    {
        static void Main(string[] args) {
            ShapeCircle sc = new ShapeCircle(10, 20);
            Console.WriteLine("{0}, {1}", sc.Center.X, sc.Center.Y);
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.364 из 5
Похожие ответы