Страница 1 из 1

Генератор классов.

СообщениеДобавлено: 26 сен 2019, 17:13
46165957
Вчера набивал класс более чем с сотней переменных, и чет устал... нашкрябал такую себе помогалку:

Изображение

https://yadi.sk/d/_s1yRJki6FMgdg

Может сэкономит кому пару тройку часиков.

Re: Генератор классов.

СообщениеДобавлено: 26 сен 2019, 17:39
Jarico
Ну и зачем? Типо обфускация?

Re: Генератор классов.

СообщениеДобавлено: 26 сен 2019, 17:54
1max1
Это для лентяев, чтобы в 3 раза меньше кода писать)

Re: Генератор классов.

СообщениеДобавлено: 26 сен 2019, 17:57
46165957
Jarico писал(а):Ну и зачем? Типо обфускация?


Когда расписываешь класс, на одну переменную два раза указываешь ее тип и четыре раза ее имя... задолбало просто ctrlc ctrlv жмякать. А так тип и имя вписал, а оно раскидалось, один раз скопипастил и норм. Допускаю, что это делается не так, и гораздо проще. Но вчера столкнувшись с тем, что нужно прописать несколько классов по сотне переменных, и парочку за три сотни, немного загрустил и вот...

Re: Генератор классов.

СообщениеДобавлено: 26 сен 2019, 17:59
1max1
46165957 писал(а):
Jarico писал(а):Ну и зачем? Типо обфускация?


Когда расписываешь класс, на одну переменную два раза указываешь ее тип и четыре раза ее имя... задолбало просто ctrlc ctrlv жмякать. А так тип и имя вписал, а оно раскидалось, один раз скопипастил и норм. Допускаю, что это делается не так, и гораздо проще. Но вчера столкнувшись с тем, что нужно прописать несколько классов по сотне переменных, и парочку за три сотни, немного загрустил и вот...

Что за классы такие? А как же массивы?

Re: Генератор классов.

СообщениеДобавлено: 26 сен 2019, 18:02
46165957
1max1 писал(а):Что за классы такие? А как же массивы?


Увы, у истоков всего этого дерь...продукта, стоял не я. Хотя, к массивам со временем придём надеюсь )

Re: Генератор классов.

СообщениеДобавлено: 26 сен 2019, 19:16
Jarico
46165957 писал(а):Когда расписываешь класс, на одну переменную два раза указываешь ее тип и четыре раза ее имя... задолбало просто ctrlc ctrlv жмякать


И в итоге путаница в коде будет... Сам же и забудешь какая переменная для чего предназначена... Делал так уже и в итоге пришлось заного проект строить

Re: Генератор классов.

СообщениеДобавлено: 26 сен 2019, 21:15
46165957
А как предлагаете? С гет/сет писанины поболее.

Re: Генератор классов.

СообщениеДобавлено: 26 сен 2019, 21:44
Jarico
46165957 писал(а):А как предлагаете? С гет/сет писанины поболее.


причём тут они вообще?

Re: Генератор классов.

СообщениеДобавлено: 26 сен 2019, 21:56
46165957
Jarico писал(а):
46165957 писал(а):А как предлагаете? С гет/сет писанины поболее.


причём тут они вообще?


Так а все таки? Есть класс, в котором гора переменных. Как вы прописываете конструктор, чтобы не писать по несколько раз?

Re: Генератор классов.

СообщениеДобавлено: 26 сен 2019, 22:28
1max1
46165957 писал(а):
Jarico писал(а):
46165957 писал(а):А как предлагаете? С гет/сет писанины поболее.


причём тут они вообще?


Так а все таки? Есть класс, в котором гора переменных. Как вы прописываете конструктор, чтобы не писать по несколько раз?

Боже 100 переменных в конструктор пихать? Это же километровая строка в редакторе))
Нужно знать принцип заполнения всей этой кучи, и при необходимости, можно юзануть рефлексию и заполнить все поля в 1 цикле, но опять же тут важна специфика, возможно такое не прокатит. А вообще скажи тому человеку, который все это придумал, что существуют массивы и неплохо было бы ими не пренебрегать.

Re: Генератор классов.

СообщениеДобавлено: 27 сен 2019, 03:44
Woolf
Есть класс, в котором гора переменных. Как вы прописываете конструктор, чтобы не писать по несколько раз?


Никак. Если возникает надобность в таком классе, я понимаю, что что-то пошло не так и нужно изменять логику программы. У меня есть что-то подобное на сервере, где хранятся переменные персонажа для квестовых заданий. Для этого я использую словарь Dictionary <string,int>. Понадобилось мне, например, узнать, чего там в переменной "dead_count", я и узнаю при помощи такого кода:

Синтаксис:
Используется csharp
Dictionary <string,int> qvariables;
    public int getQValue(string varname) {
        return qvariables.ContainsKey(varname) ? qvariables[varname].qvalue : 0;
    }

Re: Генератор классов.

СообщениеДобавлено: 27 сен 2019, 13:56
46165957
Woolf писал(а):Никак.

Расписывая конструктор даже на пяток переменных, мне проще написать их по одному разу, чем копипастить и править потом ;)

Woolf писал(а):Если возникает надобность в таком классе, я понимаю, что что-то пошло не так и нужно изменять логику программы

К сожалению, заказчик не всегда готов за это платить... более того, этот не колется - нахрена ему это нужно именно в таком вид. Вообще не уверен что он сам понимает что происходит... но там не достучаться.

Woolf писал(а):Понадобилось мне, например, узнать, чего там в переменной "dead_count", я и узнаю при помощи такого кода:

Синтаксис:
Используется csharp
Dictionary <string,int> qvariables;
    public int getQValue(string varname) {
        return qvariables.ContainsKey(varname) ? qvariables[varname].qvalue : 0;
    }

Сам поступаю чуть иначе, но весьма похоже.