Четверг, 28 Марта 2024, 17:25

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Программирование » Программирование .NET » Задача для всех, кто пишет на C#
Задача для всех, кто пишет на C#
UndeadДата: Среда, 16 Мая 2012, 23:29 | Сообщение # 1
NeoAxis User
Сейчас нет на сайте
Собственно задача:
Вывести в консоли "ABC";
Условия:
В методе Main() можно вывести только "B".
Метод Main должен выглядеть так:
Code
        static void Main()
                 {
                 Console.Write("B");
                 }

Ничего другого в него добавлять или изменять нельзя.

Я минут 40 бился над решением.

P.S. Если вы уже знаете решение, то не разглашайте, дайте другим голову поломать)


Вcем зла.

Сообщение отредактировал Undead - Среда, 16 Мая 2012, 23:53
AngryДата: Среда, 16 Мая 2012, 23:46 | Сообщение # 2
частый гость
Сейчас нет на сайте
Эмм... Хоть C# абсолютно не знаю, но по идее(так как я думаю) тут все элементарно просто.
UndeadДата: Среда, 16 Мая 2012, 23:48 | Сообщение # 3
NeoAxis User
Сейчас нет на сайте
Quote (Angry)
Эмм... Хоть C# абсолютно не знаю, но по идее(так как я думаю) тут все элементарно просто.

Тут нужно знать редко используемые спицифичные вещи.
Я "AB" сразу понял как вывести, а вот с "С" пришлось мозг включить.


Вcем зла.

Сообщение отредактировал Undead - Среда, 16 Мая 2012, 23:49
НохчиДата: Среда, 16 Мая 2012, 23:50 | Сообщение # 4
заслуженный участник
Сейчас нет на сайте
Undead, можно поменять точку входа?

Многие вопросы по Windows отпадут, если посмотреть тут
UndeadДата: Среда, 16 Мая 2012, 23:58 | Сообщение # 5
NeoAxis User
Сейчас нет на сайте
Quote (Нохчи)
можно поменять точку входа?

Нет.
Всё по идее просто, нужно только хорошо знать особенности .Net платформы.

Добавлено (16.05.2012, 23:58)
---------------------------------------------
Подсказка:
Все классы имеют конструкторы.


Вcем зла.

Сообщение отредактировал Undead - Четверг, 17 Мая 2012, 00:27
ArhimondusДата: Четверг, 17 Мая 2012, 01:53 | Сообщение # 6
частый гость
Сейчас нет на сайте
Можно как вариант так:
UndeadДата: Четверг, 17 Мая 2012, 05:51 | Сообщение # 7
NeoAxis User
Сейчас нет на сайте
Arhimondus, Не то. Нужно использовать стандартный класс консоли.

Вcем зла.
НохчиДата: Четверг, 17 Мая 2012, 08:29 | Сообщение # 8
заслуженный участник
Сейчас нет на сайте
мб в конструкторе написать А а в деструкторе С?

Многие вопросы по Windows отпадут, если посмотреть тут
UndeadДата: Четверг, 17 Мая 2012, 09:47 | Сообщение # 9
NeoAxis User
Сейчас нет на сайте
Нохчи, Попробуй.

Вcем зла.
Desert_HunterДата: Четверг, 17 Мая 2012, 09:49 | Сообщение # 10
постоянный участник
Сейчас нет на сайте
Quote (Undead)
Arhimondus, Не то. Нужно использовать стандартный класс консоли.

Ну дак он и использовал стандартный класс(класс, который сосзается автоматом при создании приложения)...
UndeadДата: Четверг, 17 Мая 2012, 10:00 | Сообщение # 11
NeoAxis User
Сейчас нет на сайте
Quote (Desert_Hunter)
Ну дак он и использовал стандартный класс(класс, который сосзается автоматом при создании приложения)...

Нужно использовать System.Console

Добавлено (17.05.2012, 10:00)
---------------------------------------------
Про конструктор и деструктор верная идея smile


Вcем зла.
ArhimondusДата: Четверг, 17 Мая 2012, 11:31 | Сообщение # 12
частый гость
Сейчас нет на сайте
В условии задачи не сказано, что Console.Write обязательно должен быть от пространства System. По факту решение верное.

Возможно вот этот вариант подойдёт (пришлось даже поломать голову немного на счёт решения задачи через конструкторы/деструкторы):
UndeadДата: Пятница, 18 Мая 2012, 07:12 | Сообщение # 13
NeoAxis User
Сейчас нет на сайте
Arhimondus, Это одно из верных решений. А Про то, что Console.Write обязательно должен быть от пространства System, я забыл упомянуть, мне это показалось итак понятно.
Вот ещё вариант решения:
Code
using System;
using System.Collections.Generic;
using System.Text;

namespace ABC
      {
      class Program    
          {
           static Program()
              {
              Program pg = new Program();
              Console.WriteLine("A");
              }
          static void Main()
              {
              Console.WriteLine("B");
              }
          ~Program()
              {
              Console.WriteLine("C");
              }

          }
      }

Т.К. деструкторы в .Net используются очень редко(за ненадобностью), эта задача оказывается не по силам новичкам(большинству из них) и заставляет задуматься остальных.


Вcем зла.

Сообщение отредактировал Undead - Пятница, 18 Мая 2012, 07:17
Stalker_ShooterДата: Пятница, 18 Мая 2012, 18:42 | Сообщение # 14
3D XNA'шник
Сейчас нет на сайте
Undead, я бы не сказал, что деструкторы используются редко. Они используются тогда, когда нужно следить за сборками мусора (в некоторых случаях). А в компьютерных играх сборки мусора - главный враг! biggrin .

*Не убегай от снайпера, умрешь уставшим.
*Мои статьи...


Сообщение отредактировал Stalker_Shooter - Пятница, 18 Мая 2012, 18:43
UndeadДата: Суббота, 19 Мая 2012, 12:34 | Сообщение # 15
NeoAxis User
Сейчас нет на сайте
Stalker_Shooter, Я использую деструкторы, только если взаимодействую с нативным кодом, а во всех остальных случаях обхожусь и без них.

Вcем зла.
NightmareZДата: Четверг, 28 Июня 2012, 01:59 | Сообщение # 16
частый гость
Сейчас нет на сайте
Quote (Undead)
Вот ещё вариант решения:

Это неправильный вариант, не смотря на то, что в 99.9999% он будет работать. Ведь никто не гарантирует, что деструктор будет вызван обязательно после вывода "B".
SquareHaterДата: Четверг, 28 Июня 2012, 02:37 | Сообщение # 17
участник
Сейчас нет на сайте
дада согласен получиться фигня если так
Форум игроделов » Программирование » Программирование .NET » Задача для всех, кто пишет на C#
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг