2013-08-17 3 views
2

Noob вопрос здесь, но я действительно застрял!Класс, который может использоваться вне приложения

Я пытаюсь установить класс, который можно использовать, хотя из моего приложения называется UpdateDatabase. Файл UpdateDatabase.cs хранится в моем пространстве имен AppName.Helpers, и я объявлял using AppName.Helpers всюду, я хочу использовать UpdateDatabase.

У меня возникли проблемы со звонкой UpdateDatabase. Я установил его как public class UpdateDatabase. Это правильная вещь?

В пределах UpdateDatabase У меня есть несколько классов UpdateCustomers, UpdateEmployees и UpdateProducts. Я хотел бы, чтобы пользователь мог нажать кнопку, получить этот вызов UpdateDatabase, а затем начать выполнение трех «подклассов» в UpdateDatabase.

Везде, что я называю UpdateDatabase я получаю сообщение об ошибке говорящее AppName.Helpers.UpdateDatabase' is a 'type' but is used like a 'variable

+1

Пожалуйста, разместите код, который дает вам ошибки. –

ответ

3

Вы, вероятно, пытается сделать что-то вроде этого:

UpdateDatabase.UpdateCustomers();

У вас есть несколько вариантов здесь:

1) Создать объект класса

var helper = new UpdateDatabase(); 
helper.UpdateCustomers(); 

2) Используйте его в качестве статического класса

public static class UpdateDatabase { 
    public static void UpdateDatabase(){} 
} 

Для того, чтобы использовать методы класса за вы должны создать экземпляр этого, чтобы вы получите доступ к этим методам. Или вы можете сделать его статическим, так что экземпляр не требуется, но тогда этот класс будет использоваться для каждого использования.

Если это не ответит на ваш вопрос, вам придется отредактировать сообщение с кодом.

+0

Спасибо, это сработало! Я только что сделал свой первый метод и создал объект класса. Помогает много! :) –

1

Было бы полезно, если бы вы могли показать немного кода и его использование. Я предполагаю, что проблема заключается в том, что класс UpdateDatabase не является статическим классом и/или что вы не создали его экземпляр, «обновляя его», чтобы вы могли фактически использовать его в других частях вашего кода.

2

Я не программист на C#, но это звучит для меня так, как вам нужно, чтобы создать экземпляр вашего класса. Ваш класс updateDatabase просто сообщает компилятору, как эта переменная будет выглядеть, а не как объект типа updateDatabase.

В большинстве языков OO вы можете создать объект типа myClass, вызвав конструктор который происходит неявно при использовании new ключевого слова.

Таким образом

var db = new updateDatabase(); 
db.myMethod(); 

По этим причинам компилятор жалующихся с сообщением

AppName.Helpers.UpdateDatabase' is a 'type' but is used like a 'variable

0

Для OnClick события кнопки называют свой класс следующим образом:

UpdateDatabase.subclass(); 
0

Все в порядке, каждый здесь был nooblet. =)

Я действительно считаю, что ваша проблема кроется в том, что вы пытаетесь напрямую обращаться к методам.

According to MSDN, обозначающий класс как общедоступный '[...] - самый разрешительный уровень доступа. Нет никаких ограничений на доступ к публичным членам ». Но вы должны Instantiate класс, например:

AppName.Helpers.UpdateDatabase _obj = new AppName.Helpers.UpdateDatabase(); 

После этого, вы будете иметь возможность использовать его членов (свойства и методы).

С другой стороны, вы можете объявить свой класс static. Вам не потребуется создавать экземпляр, но вы не сможете создать экземпляр, и его также нельзя уничтожить.

Смежные вопросы