powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / С# "static" - разъясните плиз
25 сообщений из 116, страница 1 из 5
С# "static" - разъясните плиз
    #39646419
iskatelsql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я пру дней только изучаю C#, но вот со "static" не понимаю.

привык что в плюсах "static" означает переменную которая сохраняет свое значение при следующем вызове ф-ции.

Точнее я понимаю, что если студия ругается, нужно влепить этот статик :)

Вот например пример

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
    class Program
    {

        public static int xzchto;
    
        static void Main(string[] args)
        {
                xzchto = "какойто фигне, например путь, получаемый при старте"
        }

        void hren_kakayato() //обработчик, совсем не мой, я не могу поправить его параметры
        { 
              //но в обработчике используется xzchto, поэтому я передаю его так
        }
}
    


Тут вопросов целых два:

1 правильно ли так делать
2 получается какаято глобальная переменная для класа, и сборщик до конца программы ее не отпустит? (а в ручную освобождение пмяти я так и не нагуглил)


Киньте ссылку гле почитать про этот статик, но чтоб вообще "для даунов" с примерами плиз.
...
Рейтинг: 0 / 0
С# "static" - разъясните плиз
    #39646424
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iskatelsqlКиньте ссылку гле почитать про этот статик, но чтоб вообще "для даунов" с примерами плиз.

https://www.google.com/search?q=C# static для даунов
...
Рейтинг: 0 / 0
С# "static" - разъясните плиз
    #39646439
iskatelsql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Угу, а своими словами можешь? Читал я этот машинный перевод микрософтдок, только не понял ничего
...
Рейтинг: 0 / 0
С# "static" - разъясните плиз
    #39646462
Pallaris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iskatelsql,

static - это поле, значение которого принадлежит типу, а не экземпляру типа

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
public class SomeClassType
{
     public static int XStatic;
     public int XInstance;
}

void Main
{
     SomeClassType.XStatic = 0;//можно
     SomeClassType.XInstance = 1;//нельзя
     var instance = new SomeClassType();
     instance.XStatic = 0;//нельзя
     instance.XInstance = 1;//можно
}
...
Рейтинг: 0 / 0
С# "static" - разъясните плиз
    #39646465
Pallaris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iskatelsql1 правильно ли так делать


Правильно или нет, это зависит от контекста. Иногда правильно, иногда нет.

2 получается какаято глобальная переменная для класа, и сборщик до конца программы ее не отпустит? (а в ручную освобождение пмяти я так и не нагуглил)

Да, не отпустит.

Статья, не павшая жертвой машинного перевода
...
Рейтинг: 0 / 0
С# "static" - разъясните плиз
    #39646468
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pallaris Статья, не павшая жертвой машинного перевода
Толку-то. По ссылке в гугл, данной выше, третья ссылка в выдаче - на статью на хабре, где весь сабж достаточно подробно разбирается. Но чукча, видимо, не читатель.
...
Рейтинг: 0 / 0
С# "static" - разъясните плиз
    #39646523
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iskatelsqlУгу, а своими словами можешь? Читал я этот машинный перевод микрософтдок, только не понял ничего

Видимо не читал..
...
Рейтинг: 0 / 0
С# "static" - разъясните плиз
    #39646534
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iskatelsqlТут вопросов целых два:

1 правильно ли так делать
2 получается какаято глобальная переменная для класа, и сборщик до конца программы ее не отпустит? (а в ручную освобождение пмяти я так и не нагуглил)А не надо так делать, да и все. Метод Main работает в статическом контексте по определению. Дальше объявите класс, создайте экземпляр, объявите в нем свои переменные и методы, и юзайте в нужном скопе. Main - это всего лишь точка входа в приложение.
...
Рейтинг: 0 / 0
С# "static" - разъясните плиз
    #39646535
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProА не надо так делать, да и все. Метод Main работает в статическом контексте по определению. Дальше объявите класс, создайте экземпляр, объявите в нем свои переменные и методы, и юзайте в нужном скопе. Main - это всего лишь точка входа в приложение.

Я бы не стал так распинаться для человека, который даже до третьей ссылки в гугле дойти не в состоянии.
...
Рейтинг: 0 / 0
С# "static" - разъясните плиз
    #39646915
iskatelsql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pallarisiskatelsql,

static - это поле, значение которого принадлежит типу, а не экземпляру типа

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
public class SomeClassType
{
     public static int XStatic;
     public int XInstance;
}

void Main
{
     SomeClassType.XStatic = 0;//можно
     SomeClassType.XInstance = 1;//нельзя
     var instance = new SomeClassType();
     instance.XStatic = 0;//нельзя
     instance.XInstance = 1;//можно
}



За это большое спасибо, но у меня шаблон рвется чесс слово.
Я еще могу понять, что этой статческой переменной каким-то образом можно присвоить значение без инстанса (ну хз, я только пару дней как изучаю, все МБ) но не могу понять почему в инстансе ей значение присвоить нельзя, она ж в классе вроде.


Shocker.ProiskatelsqlТут вопросов целых два:

1 правильно ли так делать
2 получается какаято глобальная переменная для класа, и сборщик до конца программы ее не отпустит? (а в ручную освобождение пмяти я так и не нагуглил)А не надо так делать, да и все. Метод Main работает в статическом контексте по определению. Дальше объявите класс, создайте экземпляр, объявите в нем свои переменные и методы, и юзайте в нужном скопе. Main - это всего лишь точка входа в приложение.

Ну тогда, если не сложно, киньте хоть маленький пример как правильно. Я не очень понимаю как в сторонний обработчик можно передать свою переменную без глобальных.


hVosttShocker.ProА не надо так делать, да и все. Метод Main работает в статическом контексте по определению. Дальше объявите класс, создайте экземпляр, объявите в нем свои переменные и методы, и юзайте в нужном скопе. Main - это всего лишь точка входа в приложение.

Я бы не стал так распинаться для человека, который даже до третьей ссылки в гугле дойти не в состоянии.

Да, я знаю, что форумы созданы для того чтоб помогать а не гнобить.
...
Рейтинг: 0 / 0
С# "static" - разъясните плиз
    #39646917
iskatelsql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЗЫЫ. немного оффтопика: у меня уведомления по почте не идт, как поправить?
...
Рейтинг: 0 / 0
С# "static" - разъясните плиз
    #39646923
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iskatelsqlДа, я знаю, что форумы созданы для того чтоб помогать а не гнобить.

Нет, форумы существуют исключительно для того, чтобы гнобить
...
Рейтинг: 0 / 0
С# "static" - разъясните плиз
    #39646947
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iskatelsql,

Какой смысл изучать язык методом тыка?
Ты пишешь лабуду, случайный набор операторов и спрашиваешь, почему это не работает. А почему это должно работать? Может надо взять учебник и прочитать синтаксис языка, понятие типов, инстанцирование, а потом уже браться за попытки написать программу? Нет? Русский человек инструкций не читает?
...
Рейтинг: 0 / 0
С# "static" - разъясните плиз
    #39646950
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iskatelsqlу меня шаблон рвется чесс слово.а ты не приходи со своим шаблоном в чужой язык, тогда он останется целым
...
Рейтинг: 0 / 0
С# "static" - разъясните плиз
    #39646957
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iskatelsqlДа, я знаю, что форумы созданы для того чтоб помогать а не гнобить.
Что-то не видно, что Вы в форуме по плюсам рвались помогать нубам разобраться в конструкциях языка
...
Рейтинг: 0 / 0
С# "static" - разъясните плиз
    #39646967
iskatelsql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Proiskatelsql,

Какой смысл изучать язык методом тыка?
Ты пишешь лабуду, случайный набор операторов и спрашиваешь, почему это не работает. А почему это должно работать? Может надо взять учебник и прочитать синтаксис языка, понятие типов, инстанцирование, а потом уже браться за попытки написать программу? Нет? Русский человек инструкций не читает?

По наивности надеялся что знания других языков помогут. впринципе помогли, пару программ я уже написал, работают, теперь хочется в детали.


skyANAiskatelsqlДа, я знаю, что форумы созданы для того чтоб помогать а не гнобить.
Что-то не видно, что Вы в форуме по плюсам рвались помогать нубам разобраться в конструкциях языка

Да, знаю. но я везде не профи. А особенно на этом форуме может выйти боком. Захочешь помочь, но "профи" загнобят, типа куда со своими лаптями лезешь.
...
Рейтинг: 0 / 0
С# "static" - разъясните плиз
    #39646999
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iskatelsqlтеперь хочется в детали
iskatelsqlя везде не профи
Книг, курсов, лекций, семинаров, интенсивов предостаточно. Платных и бесплатных.
Было бы желание.

Но лучше конечно реальный проект и опытного напарника найти
...
Рейтинг: 0 / 0
С# "static" - разъясните плиз
    #39647006
Lev Limin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iskatelsqlПо наивности надеялся что знания других языков помогут. впринципе помогли, пару программ я уже написал, работают, теперь хочется в детали.


Судя по вашим вопросам уже закрадывается ощущение, что в плюсах вы плаваете так же.
Даже удивительно, как вы патчите программы?

iskatelsqlДа, знаю. но я везде не профи. А особенно на этом форуме может выйти боком. Захочешь помочь, но "профи" загнобят, типа куда со своими лаптями лезешь.

Не обижайтесь. Просто вы на каждое встреченное незнакомое слово бежите тред создавать.
А незнакомых слов в языках программирования много...

Про static уже 100500 раз на всех ресурсах написано подробно.
...
Рейтинг: 0 / 0
С# "static" - разъясните плиз
    #39647038
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iskatelsqlПо наивности надеялся что знания других языков помогутКатался на мотоцикле, купил машину, там ведь в принципе то же самое, руль, колеса. Только вот с места никак тронуться не могу, помогите мне на форуме.
...
Рейтинг: 0 / 0
С# "static" - разъясните плиз
    #39647104
iskatelsql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

Я не учился на программиста, у меня совсем другая специальность.

При прочтении книг иногда возникают моменты, что я читаю но не доходит. Тупой наверн. Тогда я обращаюсь на форум чтоб разжевали и с примерами... Но на форуме посылают читать книгу. Засада.

Lev LiminДаже удивительно, как вы патчите программы?
Не поверите, но мой путь в программизме начался с софтайса (если знаете что это такое :) ), книжке по асму, и дикого желания взломать одну прогу... 0 знаний. 8 часов, и я ее взломал.

На самом деле весь этот патчинг гораздо проще чем кажется. это в новомодных языках напридумывали всяких абстракций, в которых икс разберешься, а процессоры то не намного поменялись, выполняют все теже интрукции, в винде все тоже API. Вобщем "изнутри" (в отладчике) проги выглядят "намного более одинаковей" чем в сорцах.
...
Рейтинг: 0 / 0
С# "static" - разъясните плиз
    #39647105
iskatelsql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAНо лучше конечно реальный проект и опытного напарника найти

Я не учился на программиста, у меня совсем другая специальность. Физически не могу выделить столько времени (сил, денег) чтоб полностью познать какойто язык. (да мне и не экзамен сдавать)

У меня есть некоторые знания, которые позволяют писать мелкие программки для автоматизации рутинной ручной работы. Если не нахожу ответа в гугле пишу на форум... вроде как для того и создан.
...
Рейтинг: 0 / 0
С# "static" - разъясните плиз
    #39647106
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iskatelsqlТогда я обращаюсь на форум чтоб разжевали и с примерами...Ну так возьмем твое первое сообщениеiskatelsqlпривык что в плюсахну и причем тут плюсы? Ты взял новый язык, ну так и не надо натягивать на него свои старые знания - это тебе мешает, а не помогает.

iskatelsqlТочнее я понимаю, что если студия ругается, нужно влепить этот статик :)и этот подход нафига? Надо не влеплять тупо, а задать себе вопрос, что я делаю и что хочу получить, а потом искать способ как это сделать. Если тебе не нужна статическая переменная, значит и не надо ее влеплять.


В целом получилось, что с самого начала, вместо того, чтобы действительно попросить разжевать непонятный пример из учебника, ты "лепишь" (это твой термин) какой-то свой собственный код, а потом начинаешь ругать язык вместо того, чтобы ругать себя, что ты не смог в нем разобраться. И в итоге ты получил то, что получил - тебя отправили читать книги.
...
Рейтинг: 0 / 0
С# "static" - разъясните плиз
    #39647107
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iskatelsqlЯ не учился на программистаиз десяти коллег-разработчиков в моей комнате только двое учились на программиста, и что?
...
Рейтинг: 0 / 0
С# "static" - разъясните плиз
    #39647108
iskatelsql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

хм, ну я и не работаю программистом. Помогать и обучать меня некому. Иногда пишу полезные мелкие фишки для работы и только... чтото вроде хобби.

ЗЫЫ немного оффа - не приходят уведомления на почту, не нашел как включить, подскажи плиз.
...
Рейтинг: 0 / 0
С# "static" - разъясните плиз
    #39647112
iskatelsql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProВ целом получилось, что с самого начала, вместо того, чтобы действительно попросить разжевать непонятный пример из учебника, ты "лепишь" (это твой термин) какой-то свой собственный код, а потом начинаешь ругать язык вместо того, чтобы ругать себя, что ты не смог в нем разобраться. И в итоге ты получил то, что получил - тебя отправили читать книги.

Зачем же так ругаться (психовать?)

1 пример из книги я не приводил, прост про статик спросил
2 я не ругаю язык, и да, не ругаю себя.
3 меня отправили туда, откуда я и пришел (ну книгу не читал целиком, да, но по гуглу читал про то что спросил)
...
Рейтинг: 0 / 0
25 сообщений из 116, страница 1 из 5
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / С# "static" - разъясните плиз
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]