Class - малко разяснение на една концепция...


1

Здравейте колеги,

Въпроса ми навярно е много ламерски , но съм много зелен в материята та...

Въпроса :

Може да си кодираме ръчно Class  а може и да си го извикаме от контекстното меню на конкретното асембли чрез Add >> Class (Select - Alt - C) .. Въпроса ми е има ли разлика концептуална или това са два начина да направиш едно и също движение.. и най-вече ме интересува от гледна точка на качественото програмиране кое е по-правилно ... класовете да са в отделни файлове както ги създава ВС-то или според логиката може да се групират в един .cs (примерно от домашното по-правилно е да обединим класовете Batttry и BatteryType или да са в отделни .cs както би ги създал ВС-то). Благодаря предварително за помощта!




Отговори



1
И от двете места ще направи едно и също нещо - ще направи клас(стига да съм разбрал коректно въпроса). Колкото до разпределението в отделни файлове - всеки клас или енумерация трябва да е в отделен клас.

от lnxslackware (416 точки)


5

Здравей,

По - правилното е всяко нещо да е в отделен файл. Това е така нареченият Single Responsibility Principle. Може да разгледаш повече в интернет за него ако ти е интересно. Иначе тези неща ще се учат малко по - натам в Академията, но е хубаво, че се интересуваш от сега. Идеята е, че всяко нещо трябва да върши една конкретна работа/задача. И реално в случея Battery ще използва BatteryType, но не е работа на Battery класа да държи в себе си имплементацията на BatteryType.


от mbelev (2312 точки)


0

Мен пък ми е интересно да разбера как C# include-ва .cs файловете. Ако са в една директория - ок, но ако са в различни директории? Как мога да ги include-на?

Например имам директория Stuff и в нея няколко .cs файла. Как мога да ги достъпя?


от PaperNick (494 точки)


1
 В случя са важни namespac-ите, а не директориите. За да достъпиш в един namespace клас от друг, трябва да дадеш using на namespac-a на втория клас. В C# е прието, namespace-ите да съответстват на директориите във файловата система.

от ivan.mihov1 (4988 точки)

0

Можеш ли да дадеш някакъв прост пример, че не разбрах как namespace-ите ще играят ролята на директория?

Как точно давам using на namespace-а? -> using ./path/to/namespace ?


от PaperNick (494 точки)



0
Всеки клас в отделен файл! КПК предстои споко :)

от YoTsenkov (175 точки)