Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/63: Рейтинг темы: голосов - 63, средняя оценка - 4.71
1 / 1 / 0
Регистрация: 12.04.2010
Сообщений: 6

Реализовать класс (Logger) позволяющий выводить текстовые сообщения в консоль

29.04.2010, 13:22. Показов 13572. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет всем! у меня такое задание: реализовать класс (Logger) позволяющий выводить текстовые сообщения в консоль.
Рекомендации: при реализации класса Logger воспользоваться паттерном Singleton.
Кто-нибудь может помочь?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
29.04.2010, 13:22
Ответы с готовыми решениями:

Класс Logger с заданием scope логгируемого сообщения
всем привет. есть такая задачка, создать класс logger, который умеет задавать scope логгируемого сообщения например таким методом ...

Можно ли выводить сообщения при работе модуля ядра на консоль
можно ли как-нить выводить сообщения при работе модуля на консоль? Слышал, что это зависит от приоритетов... Но ни с одним приоритетом...

Реализовать класс позволяющий получать информацию о размере изображения из имени файла
Реализовать класс, позволяющий получать информацию о размере изображения в BMP-файле с последующим предположением. если имя файла...

16
Кибернетик
 Аватар для СyberSpec
465 / 89 / 12
Регистрация: 10.04.2009
Сообщений: 424
29.04.2010, 13:27
C#
1
2
3
[ManagementEntity(Singleton=true)]
public class Logger
...
оно?
0
1 / 1 / 0
Регистрация: 12.04.2010
Сообщений: 6
04.05.2010, 22:17  [ТС]
ага!!!!
0
Кибернетик
 Аватар для СyberSpec
465 / 89 / 12
Регистрация: 10.04.2009
Сообщений: 424
04.05.2010, 22:51
Цитата Сообщение от Элька Посмотреть сообщение
ага!!!!
Так позитивно) Проблема решена или вопросы есть?
0
 Аватар для Mikant
1322 / 995 / 127
Регистрация: 08.12.2009
Сообщений: 1,299
05.05.2010, 11:52
чет я не впечатлился...

C#
1
2
3
4
5
        [ManagementEntity(Singleton = true)]
        class a { }
 
            a b = new a();
            a c = new a();
и никаких проблем. чё за?
0
Эксперт С++
 Аватар для CyBOSSeR
2348 / 1721 / 149
Регистрация: 06.03.2009
Сообщений: 3,675
05.05.2010, 13:02
СyberSpec, атрибуты вижу, паттерна Singleton нет.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class Loger {
  private Loger instance = null;
  
  // Other fields
 
  private Loger() {
  }
 
  public Loger Instance {
    get {
      if (instance == null)
        instance = new Loger();
 
      return instance;
    }
  }
 
  // Other methods
}
0
Кибернетик
 Аватар для СyberSpec
465 / 89 / 12
Регистрация: 10.04.2009
Сообщений: 424
06.05.2010, 10:00
2 CyBOSSeR, я хотел чтобы Элька меня попросила продолжить. А вообще вопрос не стоял написать ей паттерн.
0
1 / 1 / 0
Регистрация: 12.04.2010
Сообщений: 6
06.05.2010, 12:33  [ТС]
Дорогой СyberSpec! Я с очень большой надеждой в душе прошу Вас помочь и предоставить мне полный вариант, так как я не очень сильна в С#! Заранее огромное спасибо!
с уважением
Элька ;-)
1
Кибернетик
 Аватар для СyberSpec
465 / 89 / 12
Регистрация: 10.04.2009
Сообщений: 424
07.05.2010, 12:03
Цитата Сообщение от Элька Посмотреть сообщение
Дорогой СyberSpec! Я с очень большой надеждой в душе прошу Вас помочь и предоставить мне полный вариант, так как я не очень сильна в С#! Заранее огромное спасибо!
с уважением
Элька ;-)
Ок
Даю 2 примера. Там полно комментариев.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
/// generic Singleton<T> (потокобезопасный с использованием generic-класса и с отложенной инициализацией)
 
/// <typeparam name="T">Singleton class</typeparam>
public class Singleton<T> where T : class
{
  /// Защищенный конструктор по умолчанию необходим для того, чтобы
  /// предотвратить создание экземпляра класса Singleton
  protected Singleton() { }
 
  /// Фабрика используется для отложенной инициализации экземпляра класса
  private sealed class SingletonCreator<S> where S : class
  {
    //Используется Reflection для создания экземпляра класса без публичного конструктора
    private static readonly S instance = (S) typeof(S).GetConstructor(
                BindingFlags.Instance | BindingFlags.NonPublic,
                null,
                new Type[0],
                new ParameterModifier[0]).Invoke(null);
 
    public static S CreatorInstance
    {
      get { return instance; }
    }
  }
 
  public static T Instance
  {
    get { return SingletonCreator<T>.CreatorInstance; }
  }
 
}
 
/// Использование Singleton
public class TestClass : Singleton<TestClass>
{
    private TestClass() { }
 
    public string TestProc()
    {
        return "Hello World";
    }
}
 
//Так же можно использовать стандартный вариант потокобезопасной реализации Singleton с отложенной инициализацией:
public class Singleton
{
 
  protected Singleton() { }
 
  private sealed class SingletonCreator
  {
    private static readonly Singleton instance = new Singleton();
    public static Singleton Instance { get { return instance; } }
  }
 
  public static Singleton Instance
  {
    get { return SingletonCreator.Instance; }
  }
 
}
И еще. Тебе наверное нужно знать что это такое - Singleton, и с чем это едят .
2
1 / 1 / 0
Регистрация: 12.04.2010
Сообщений: 6
26.05.2010, 18:14  [ТС]
Спасибо огромное!!!!!!!!!!
0
 Аватар для d0s'A
153 / 113 / 25
Регистрация: 23.06.2008
Сообщений: 320
27.05.2010, 07:16
Можно по проще

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    public class Singleton
    {
        private static Singleton instance;
 
        protected Singleton()
        {
        }
 
        public static Singleton GetInstance()
        {
            if(instance == null)
            {
                instance = new Singleton();
            }
            return instance;
        }
    }
0
Эксперт С++
 Аватар для CyBOSSeR
2348 / 1721 / 149
Регистрация: 06.03.2009
Сообщений: 3,675
27.05.2010, 12:04
Цитата Сообщение от d0s'A Посмотреть сообщение
Можно по проще
Это конечно проще, но не позволяет такой код должен присутсвовать в каждом классе, которого мы хотим сделать одиночкой.
Вариант CyberSpec предпочтительнее.
0
7 / 7 / 1
Регистрация: 04.12.2009
Сообщений: 42
07.06.2011, 20:16
А можно рабочий вариант проги?
токо со всем хламом, чтобы сделать КопиПаст и получить на экране "Хело ЖОРА!!!"

Добавлено через 2 часа 17 минут
Цитата Сообщение от Sanek911 Посмотреть сообщение
А можно рабочий вариант проги?
токо со всем хламом, чтобы сделать КопиПаст и получить на экране "Хело ЖОРА!!!"
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
using System;
 
namespace ConsoleApplication2
{
 
    public class Singleton
    {
        private static Singleton instance;
 
        protected Singleton()
        {
        }
 
        public static Singleton GetInstance()
        {
            if (instance == null)
            {
                instance = new Singleton();
            }
            return instance;
        }
        public void Proc()
        {
            Console.WriteLine("Hello World");
        }
 
    }
 
    class Program
    {
        static void Main()
        {
            Singleton.GetInstance().Proc();
        }
    }
 
}
0
1 / 1 / 0
Регистрация: 04.06.2012
Сообщений: 20
23.11.2012, 14:13
C#
1
 get { return instance; }
что такое get? зачем он нужен?
0
Эксперт .NET
 Аватар для Casper-SC
4434 / 2094 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
23.11.2012, 19:44
Цитата Сообщение от ДуркоСАвтоматом Посмотреть сообщение
что такое get? зачем он нужен?
Это что-то там про свойства
0
 Аватар для Sp1tfire
76 / 66 / 1
Регистрация: 10.12.2011
Сообщений: 175
24.11.2012, 00:40
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
using System;
 
namespace testLog
{
    class Program
    {
        static void Main(string[] args)
        {
            var logger = Logger.Instance;
            logger.LogMessage("testing logging");
 
            Console.WriteLine("testing simple console output");
 
            Console.ReadKey();
        }
    }
 
    internal sealed class Logger 
    {
        private static readonly Logger instance = new Logger();
        private Logger() { }
 
        internal static Logger Instance
        {
            get
            {
                return instance;
            }
        }
 
        internal void LogMessage(string message)
        {
            var ccb = Console.ForegroundColor;
            Console.ForegroundColor = ConsoleColor.DarkGreen;
 
            Console.WriteLine("[{0}]: {1}", DateTime.Now.ToString(), message);
 
            Console.ForegroundColor = ccb;
        }
 
 
    }
}
0
1152 / 860 / 263
Регистрация: 30.04.2009
Сообщений: 3,603
25.11.2012, 03:06
Цитата Сообщение от СyberSpec Посмотреть сообщение
Ок
Даю 2 примера. Там полно комментариев.
С чего это вы решилы, что он потокобезопасный?
Для потокобезопасности нужно еще реализовать блокировку с двойной проверкой, и обозначить instance атрибутом volatile, или я не прав?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.11.2012, 03:06
Помогаю со студенческими работами здесь

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

Реализовать хук на D3D9 (DirectX9), чтобы выводить сообщения в чужом окне (игре)
Здравствуйте уважаемые гуру дотНЕТа. Помогите плиз. Хочу реализовать хук на D3D9 (DirectX9), чтобы выводит сообщения в чужом окне...

Реализовать класс “Окружность”. Позволяет выводить информацию об окружности (радиус, координаты точки)
Подскажите пожалуйста по методу увеличения/уменьшения в n раз.

Реализовать класс, выводящий сообщение на консоль (найти и исправить ошибки)
Здравствуйте! Разбираю тему &quot;классы&quot; в С++. Программа должна выдавать сообщение: website: cppstudio.com theme: Classes and Objects...

Пользовательский класс String: реализовать копирование строки и вывод её на консоль (найти ошибки в коде)
Привет. Мне нужен ответ: я дурак, или это c++ подвел (естественно первое:)). Я решил попрактиковаться и написать собственный класс string,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru