OriginalGriff
Ошибка довольно явная:
An object reference is required for the non-static field abso.load()
Это означает, что класс
Abso
объявляет вызываемый метод
Load
подобный этому:
public void Abso()
{
...
}
А это значит, что это и есть Ан
instance method
: он нуждается в экземпляре
Abso
класс на работу.
Не обращайте внимания на компьютеры и подумайте об автомобилях:
What colour is your car?
What colour is my car?
What colour is this car?
What colour is that car?
Это все правильные вопросы, потому что они указывают на автомобиль, который вас интересует - потому что все автомобили не одного цвета, вы не можете спросить:
What colour is a car?
И если вы попытаетесь, люди будут смотреть на вас довольно странно!
И наоборот, вы можете спросить:
How many wheels has a car?
потому что все автомобили имеют четыре колеса - если бы у них было два, они были бы мотоциклом!
"What colour?"
это
instance
вопрос - он требует экземпляра автомобиля ("ваша машина", "моя машина", "вон та машина, рядом с фонарным столбом"), прежде чем вы сможете его задать.
"How many wheels?"
это
static
вопрос - вам не нужно указывать транспортное средство, чтобы получить ответ.
В C# у нас есть то же самое - an
instance method
требуется определенный экземпляр класса, поскольку он может получить доступ к связанным с экземпляром данным, свойствам и методам, а также
static method
не имеет (и не может получить доступ ни к чему, что явно не объявлено как
static
либо, не обнаруживая и не создавая экземпляр класса).
Так что посмотри на свои
Abso
метод и решить, нужно ли ему получить доступ к данным, связанным с экземпляром, или нет.
Если это не так, то объявите его как
static
:
public static void Abso()
{
...
}
Если это так, то вызовите его через экземпляр:
Absolutly.Abso abso = new Absolutly.Abso();
abso.Load();