BasicKnowledgeCSharp/LessonsAndTasks/Lesson 65 - Статический конструктор, как работает ключ. слово static/Program.cs

73 lines
1.8 KiB
C#
Raw Normal View History

2025-05-12 02:48:54 +03:00
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 02:47:11
* Version: 1.0.3
*/
using System;
2024-10-05 09:59:53 +03:00
/*
* Ключевое слово static
*
* Статический конструктор
*/
class DbRepository
{
private static string connectString;
static DbRepository() //один раз срабатывает после старта программы
{
ConfigurationManager configurationManager = new ConfigurationManager();
connectString = configurationManager.GetConnectionString();
}
public void GetData() => Console.WriteLine($"Использую: {connectString}");
}
class ConfigurationManager
{
public string GetConnectionString() => "localDB";
}
class Terro
{
public Terro() => Console.WriteLine("Конструктор");
public Terro(int a) => Console.WriteLine("Конструктор new a");
/// <summary>
/// Модификаторы доступа вообще не используются
/// Может быть только один статический конструктор в классе
/// Нельзя использовать перегрузку
/// Не может принимать параметров
/// Выполняется только один раз
/// </summary>
static Terro() => Console.WriteLine("Статический конструктор");
public static int g;
public static void Foo()
{
Console.WriteLine("Foo");
g = 2;
}
}
class Program
{
static void Main()
{
Terro.Foo();
Terro terro = new Terro();
new Terro();
new Terro();
new Terro();
var dbRepository = new DbRepository();
dbRepository.GetData();
Console.ReadKey();
}
}