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


Автор: MasterOfCode 14.8.2008, 09:25
Есть класс, в нем процедура, она в цикле вставляет записи в БД. Мне нужно передать туда ProgresBar, который лежит на форме, чтоб отслеживать ход выполнения процедуры. В С++ я бы просто передал указатель. Как мне передать туда контрол?

так: public int myFunc (..., ref ProgresBar pg, ...)?
как вообще правильно?

Автор: QryStaL 14.8.2008, 09:43
Код

public int myFunc (ProgressBar pg)
{
    // ...
}

Автор: MasterOfCode 14.8.2008, 10:01
Цитата(QryStaL @ 14.8.2008,  09:43)
Код

public int myFunc (ProgressBar pg)
{
    // ...
}

и все? Он автоматом определит что нужно ссылку передать?

Автор: QryStaL 14.8.2008, 10:01
Так как ProgressBar - ссылочный тип, то да.

Автор: MasterOfCode 15.8.2008, 06:34
А как узнать ссылочный тип у контрола или нет?

Автор: Partizan 15.8.2008, 08:47
MasterOfCode, прочитать 1 раз MSDN 

Цитата

Value Types and Reference Types

A data type is a value type if it holds the data within its own memory allocation. A reference type contains a pointer to another memory location that holds the data.

Value types include:

    * All numeric data types
    * Boolean, Char, and Date
    * All structures, even if their members are reference types
    * 1Enumerations, since their underlying type is always Byte, Short, Integer, or Long

Reference types include:

    * String
    * All arrays, even if their elements are value types
    * Class types, such as Form
    * Delegates

You can assign either a reference type or a value type to a variable of the Object data type. An Object variable always holds a pointer to the data, never the data itself. However, if you assign a value type to an Object variable, it behaves as if it holds its own data.

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