Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.79/19: Рейтинг темы: голосов - 19, средняя оценка - 4.79
Ilnur888
2 / 2 / 0
Регистрация: 18.01.2012
Сообщений: 163
#1

Как к существующему классу прикрутить какую либо переменную или метод

26.06.2012, 19:02. Просмотров 3780. Ответов 53
Метки нет (Все метки)

как в С# к существующему классу прикрутить какую либо переменную или метод??? например к кнопке какую либо булево переменную... на делфи делал это без проблем а вот тут что то не соображу никак )

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.06.2012, 19:02
Ответы с готовыми решениями:

Консоль: как сделать какую-либо клавишу недоступной
Здравствуйте, помогите с вопросом. Как сделать какую-либо клавишу недоступной...

Обратиться к классу через переменную, в которой имя класса
Приветствую. Есть такой класс public class MyClass { public class...

Как вызвать какой либо метод на ввод определенного слова в консоли?
Как вызвать какой либо метод на ввод определенного слова в консоли?

Как преобразовать переменную в метод
Всем привет! Есть код: p.Value = typeof(string); ...

Какому классу принадлежит метод BeginInvoke()
На первый взгляд вопрос может показаться банальным, но вот в чем дело. Создаем...

53
novi4ok
551 / 504 / 25
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
26.06.2012, 19:05 #2
какая книжка есть в руках, или по какой методике пытаешься соображать?
0
Ilnur888
2 / 2 / 0
Регистрация: 18.01.2012
Сообщений: 163
26.06.2012, 19:11  [ТС] #3
хе, под рукой тока гугл, но не могу что то найти достоверного ответа (

Добавлено через 53 секунды
конечно можно было бы создать дочерний класс, но эт не то ...
0
Lasur
258 / 248 / 43
Регистрация: 18.03.2012
Сообщений: 506
26.06.2012, 19:54 #4
И что значит "прикрутить"? Вот, например
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
static class Extensions
{
    public static string ToString(this int value, int @base)
    {
        return Convert.ToString(value, @base);
    }
}
 
class Program
{
    static void Main()
    {
        Console.WriteLine(32.ToString(16));
        Console.WriteLine(32.ToString(2));
    }
}
прикрутили?
0
Ilnur888
2 / 2 / 0
Регистрация: 18.01.2012
Сообщений: 163
26.06.2012, 20:22  [ТС] #5
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
namespace WindowsFormsApplication2
{
 
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            listView1.var1;
        }
 
 
    }
 
    static class listView
    {
        public Boolean var1; 
    }
}
пытаюсь так но не катит нифига
0
Lasur
258 / 248 / 43
Регистрация: 18.03.2012
Сообщений: 506
26.06.2012, 20:24 #6
Что вы хотите этим
C#
1
listView1.var1;
сделать?
1
Ilnur888
2 / 2 / 0
Регистрация: 18.01.2012
Сообщений: 163
26.06.2012, 20:31  [ТС] #7
суть наверно не столь важна что именно я хочу этим сделать, просто возможно это реализовать или нет? На делфях я это делал с листвиев для того чтобы хранить направление сортировки для каждого листвиев (как бы внутри самого листвиев, это удобно!!!!!!)
0
Lasur
258 / 248 / 43
Регистрация: 18.03.2012
Сообщений: 506
26.06.2012, 20:39 #8
Что реализовать? Приведенная выше строка не делает абсолютно ничего. Это просто обращение к переменной, без какого-либо ее использования.
Объясните подробнее чего вам нужно, что вы понимаете под "прикрутить"?
0
Ilnur888
2 / 2 / 0
Регистрация: 18.01.2012
Сообщений: 163
26.06.2012, 20:47  [ТС] #9
вобщем так я это делал на делфи а вот C# не знаю как это реализовать
Delphi
1
2
3
4
5
6
7
8
9
10
11
type
  TListView = class(ComCtrls.TListView)
    procedure WMNotify(var Message: TWMNotify); message WM_NOTIFY;
    procedure SetListViewColumnSortMark(Sender: TObject); // прорисовка треугольника сортировки
    procedure SortedUppdate(Sender: TObject);
  public
    ColumnIndex: Integer; // переменная хранит индекс столбца по которому производилась сортировка
    IsAsc: Boolean; // направление сортировки
    Rez_Lokeyt_result: Integer;
    cell_falag: Boolean;
end;
Добавлено через 4 минуты
существует класс X и у него есть набор методов (переменных), мне нужно добавить к ним свой метод или переменную так чтобы было: X.МyMetod, X.MyPer и т.д. Я уже не знаю как объяснить
0
Lasur
258 / 248 / 43
Регистрация: 18.03.2012
Сообщений: 506
26.06.2012, 20:55 #10
Я, к сожалению, незнаком с делфи, поэтому ваш код мне несколько неясен.
Например, я не знаю, что означает TListView = class(ComCtrls.TListView).
Цитата Сообщение от Ilnur888 Посмотреть сообщение
существует класс X и у него есть набор методов (переменных), мне нужно добавить к ним свой метод или переменную так чтобы было: X.МyMetod, X.MyPer и т.д.
У вас есть доступ к редактированию класса? Тогда в чем проблема?
C#
1
2
3
4
5
6
7
8
9
10
class X
{
    // Some code...
    public /*return type*/ MyMethod(/*parameters*/)
    {
        //code...
    }
 
    public /*field type*/ MyPer;
}
Если нет и обязательно нужно
Цитата Сообщение от Ilnur888 Посмотреть сообщение
так чтобы было: X.МyMetod, X.MyPer и т.д.
, то подобное можно провернуть только для методов. Для этого надо писать дополнительный статический класс, в нем метод, принимающий первый аргумент - объект типа класса, к которому вы хотите этот метод добавить с ключевым this (Методы расширения). Или используйте наследование...
0
Ilnur888
2 / 2 / 0
Регистрация: 18.01.2012
Сообщений: 163
26.06.2012, 21:05  [ТС] #11
блин ну это ясно, если бы у меня был доступ к классу то я и не создавал бы эту тему хдд... вот пытаюсь разобраться http://msdn.microsoft.com/ru-ru/library/bb383977.aspx может это вам объяснит чего я хочу раз уж вы с делфями не знакомы )

Добавлено через 3 минуты
вобщем есть форма и на ней есть кнопка b1, мне нужно привязать к классу этой кнопки некое свойство Sv1 так что бы у всех кнопок этой формы в последующем было это свойство понимаете??? не изменять же мне исходник правильно хд
0
Lasur
258 / 248 / 43
Регистрация: 18.03.2012
Сообщений: 506
26.06.2012, 21:07 #12
Пример реализации методов расширения для int я вам привел в 4-ом посте...
0
Ilnur888
2 / 2 / 0
Регистрация: 18.01.2012
Сообщений: 163
26.06.2012, 21:10  [ТС] #13
блин метод можно а переменную нет, тупо
0
Lasur
258 / 248 / 43
Регистрация: 18.03.2012
Сообщений: 506
26.06.2012, 21:17 #14
Как вариант - создать биекцию между кнопками и нужными вам свойствами.
Пример, если свойство имеет тип string:
C#
1
2
3
4
5
6
7
8
var dict = new Dictionary();
 
// При создании кнопки
dict.Add(button1, "I am button number 1. This is my property string.");
dict.Add(button2, "And I am number two button.");
 
//Для получения свойств кнопки button2
var s2 = dict[button2];
0
Ilnur888
2 / 2 / 0
Регистрация: 18.01.2012
Сообщений: 163
26.06.2012, 21:26  [ТС] #15
Ошибка 1 Использование универсального тип "System.Collections.Generic.Dictionary<TKey,TValue>" требует аргументы типа "2"
в строке
C#
1
var dict = new Dictionary();
0
Konctantin
939 / 743 / 170
Регистрация: 12.04.2009
Сообщений: 1,700
26.06.2012, 21:27 #16
Это называется унаследование
C#
1
2
3
4
5
6
7
public class MyButton : Button
{
    public bool State { get; set; }
    public MyButton() : base()
    {
    }
}
0
Ilnur888
2 / 2 / 0
Регистрация: 18.01.2012
Сообщений: 163
26.06.2012, 21:32  [ТС] #17
Да ну, почитай 3-й пост.
0
Lasur
258 / 248 / 43
Регистрация: 18.03.2012
Сообщений: 506
26.06.2012, 21:34 #18
Цитата Сообщение от Ilnur888 Посмотреть сообщение
Ошибка 1 Использование универсального тип "System.Collections.Generic.Dictionary<TKey,TValue>" требует аргументы типа "2"
C#
1
var dict = new Dictionary<Button, string>();
0
Ilnur888
2 / 2 / 0
Регистрация: 18.01.2012
Сообщений: 163
26.06.2012, 21:34  [ТС] #19
это я знаю, но вот тока боюсь с этим дочерним классом я не смогу работать в конструкторе
0
Lasur
258 / 248 / 43
Регистрация: 18.03.2012
Сообщений: 506
26.06.2012, 21:40 #20
Цитата Сообщение от Ilnur888 Посмотреть сообщение
это я знаю, но вот тока боюсь с этим дочерним классом я не смогу работать в конструкторе
Работать сможете, только придется менять часть кода сгенерированного конструктором.

Добавлено через 1 минуту
Или можно свой контрол создать...
0
26.06.2012, 21:40
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.06.2012, 21:40

Отправить какую-либо информацию в блокнот
Здравствуйте, помогите пожалуйста с кодом. Я в программировании новичок,...

Вызвать какую либо команду кнопкой
подскажите пожалуйста как мне вызвать какую либо команду кнопкой в следующем...

Как в один метод отправить объект класса и переменную
Здравствуйте подскажите как в один метод отправить объект класса и переменную.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru