Twoje problemy :
1. g2.czlonkowie_grupy - nie wypisuje się
2. osoba4 - nie wypisuje się
Rozwiązanie
1. W języku C# nie wypiszesz tablicy podając jej nazwę, tak się da bodajże w pythonie, mogłbys nadpisać metodę toString() lub po prostu napisać takie coś
string[] array = new string[5];
array[0] = "jarek";
array[1] = "ola";
array[2] = "marcel";
array[3] = "iwona";
for (int i = 0; i < array.Length; i++)
{
Console.WriteLine(array[i]);
}
2. jeśli chodzi o drugi problem, to w klasie Osoba musisz nadpisać metodę toString() , przykładowo tak
public override string ToString()
{
return $"name: {name}, nazwisko : {nazwisko}";
}
oczywiście nie wypisałem wszsytkich parametrów z klasy Osoba, ale mniej więcej tak to działa
dodatkowo: jeśli piszesz Console.Writeline() to w nawiasie pisz przykładowo ("These are my variables : " + var1 + var2) albo stosuj interpolację jak napisał kolega wyżej , nie oddziela się zmiennych przecinkami w c#
statyczne pliki często są plikami konfiguracyjnymi, inicializują się raz w momencie odpalenia programu( np. załóżmy, że piszesz prostą apkę do dodawania osób na listę gości na imprezę, to w momencie utworzenia danego obiektu mozesz przypisać obecną datę a potem użyć jej np. w wyświetlaniu kiedy dana osoba została zapisana. Oczywiście ich zastosowanie jest napewno szersze, jednak jestem początkujący w tej technologii :)
pozdro !