Aktywne Wpisy
Stgx +138
AutorBezWeny +5
Aktywne Znaleziska
Zawiera treści 18+
Ta treść została oznaczona jako materiał kontrowersyjny lub dla dorosłych.
Skopiuj link
Skopiuj linkTa treść została oznaczona jako materiał kontrowersyjny lub dla dorosłych.
Wykop.pl
programujesz w ogóle w C#?
@BackInBlack: tak
Komentarz usunięty przez autora
Nie wiem co Ci podpowiedzieć, według mnie to bez sensu, bo jak pisałem wyżej, instancji interfejsów się nie tworzy. Może to jakieś przeoczenie twórców języka, albo błąd programu, jeśli Ci edytor błędu nie pokazuje, a program się kompiluje. Na stronie MS poza Twoim obrazkiem nic dotyczącego konstruktorów
@Goglez nie potrzebuję tego w normalnym projekcie. Dla samego siebie od czasu do czasu grzebię i staram się poznawać różne smaczki języka i możliwość tworzenia statycznych konstruktorów w interfejsach wydała się warta przetestowania.
tak mozna wywołać explicit.
System.Runtime.CompilerServices.RuntimeHelpers.RunClassConstructor(typeof(IMyInterface).TypeHandle);
@MostlyRenegade No własnie statyczne konstruktowy nie są wywoływane automatycznie bo to by było bardzo skomplikowane, przez to ze można implementowac
@zibizz1: otóż to. Ale dodajmy - chodzi o konstruktory interfejsu. Można mieć konstruktor w klasie statycznej i wtedy jest jak najbardziej wywoływany.
I też nie wiem, po co to jest. Nigdy z tego nie korzystałem.
Jeśli kogoś interesuje ten temat bliżej, to znalazłem jakiegoś bloga, na którym facet pisze o tych interfejsach
https://dotnetfiddle.net/TbcyCX
public interface ICustomer
{
static void Customer() => Console.WriteLine("Hello from interface");
}
public class Customer: ICustomer
{
public string Name { get; }
public Customer(string name)
{
Name = name;
}
static Customer()
{
ICustomer.Customer();
}
}
public interface ITest
{
static ITest()
{
Console.WriteLine("static constructor");
}
static int Value;
static void Run(){}
}
Zarówno
ITest.Run();
jak iITest.Value
wywoła konstruktor.@Deaxerius wow działa!