Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Класс и функция в ней


Автор: Yagmort 28.10.2010, 10:32
Народ подскажите такую штуку. 
я добавил класс и назвал его GC как мне в этот класс добавить функцию из компонента Login1 ? как мне сослаться на функцию и вызвать ее  str.Login1.UserName.ToString(); 
сослаться на переменную класса я знаю как а вот на функцию я не знаю (
Код

class GC
{
_Default str=new _Default();
public string STR=str.Login1.UserName.ToString();
}


Код

    public partial class _Default : System.Web.UI.Page
    {        
       public void Login1_Authenticate(object sender, AuthenticateEventArgs e)
        {

        }
    }


пытался еще делать так, но чет не получается, ссылаюсь я правильно, но вот только параметры в функции не знаю какие писать, если они  
Код

object sender, AuthenticateEventArgs e
 то какое они возвращают значение ? и что вместо них можно написать ?
Код

_Default login = new _Default().Login1_Authenticate();

Автор: Fortnox 28.10.2010, 21:48
Если я правильно понял, вы хотите сделать нечто вроде:
Код

    class Foo
    {
        public void SomeMethod()
        {
            // some code
        }
    }

    class Bar
    {
        private Foo m_f;

        public Bar(Foo f)
        {
            m_f = f;
        }

        public void ExecFooMethod()
        {
            m_f.SomeMethod(); // идет вызов метода SomeMethod клаccа Foo
        }
    }

Если да, то, судя по вашим кускам кода, вы пытаетесь присвоить переменной значение функции, вызываемой из Login1. А функция в Login1 нестатическая. Поэтому для вызова ее, вам необходимо создать объект класса Login1, и потом вызвать функцию, причем делать это в определении класса, а в конструкторе или нужном методе.
Или я что-то не так понял?

Автор: Yagmort 29.10.2010, 10:06
Цитата(Fortnox @ 28.10.2010,  21:48)
Если я правильно понял, вы хотите сделать нечто вроде:
Код

    class Foo
    {
        public void SomeMethod()
        {
            // some code
        }
    }

    class Bar
    {
        private Foo m_f;

        public Bar(Foo f)
        {
            m_f = f;
        }

        public void ExecFooMethod()
        {
            m_f.SomeMethod(); // идет вызов метода SomeMethod клаccа Foo
        }
    }

Если да, то, судя по вашим кускам кода, вы пытаетесь присвоить переменной значение функции, вызываемой из Login1. А функция в Login1 нестатическая. Поэтому для вызова ее, вам необходимо создать объект класса Login1, и потом вызвать функцию, причем делать это в определении класса, а в конструкторе или нужном методе.
Или я что-то не так понял?

Все правильно вы поняли, только как сделать пример есть ?

Автор: Stolzen 5.11.2010, 06:12
Честно говоря, сложно понять, чего же именно необходимо сделать автору топика. Глаза сломал, пока читал, так толком и не понял.

Цитата(Yagmort @  28.10.2010,  18:32 Найти цитируемый пост)
но вот только параметры в функции не знаю какие писать, если они  

Имеется ввиду, как вызывать функцию? Можно вот так 
Код

Login1_Authenticate(this, null)



Цитата(Yagmort @  28.10.2010,  18:32 Найти цитируемый пост)
сослаться на переменную класса я знаю как а вот на функцию я не знаю (

Имеются ввиду указатели на функцию? В C# это реализуется с помощью делегатов (http://www.rsdn.ru/article/dotnet/delegat.xml)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)