• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

pedrotuga

Duvida básica sobre operador ... ou gtk#

7 mensagens neste tópico

Ora bem, estou a ver se desenvolvo um plugin para uma aplicação. Ande a ver o código de outros plugins e aparentemente o C# tem coisas que ainda são um grande mistério para mim.

Nomeadamente o operador +=, alguem me explica qual é a finalidade da segunda linha deste código

item = new Gtk.MenuItem (Catalog.GetString ("Post note to your blog"));
item.Activated += OnMenuItemActivated;

As vezes aparece -=

Não percebo, que raio se pode fazer com um atributo que supostamente só toma dois valores usando o operador += ou o -=.

Alguem me explica o uso destes operadores neste caso?

PS: é a primeira vez que toco em C#

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Bem o normal desse operador é adicionar ou concatenar informação. Nesse caso parece estar a adicionar um evento (OnMenuItemActivated) ao item.

O +- nunca vi, mas na versão 2008 pode-se fazer o overload dos operadores e alterar o sua acção (daí eu ter dito normal)

Dá uma vista de olhos aqui: http://msdn.microsoft.com/en-us/library/6a71f45d(VS.71).aspx

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Queria dizer -=, já corrigi essa gralha.

Pois... eu já tinha lido essa página e a certa altura está lá dito qq coisa tipo "o operador += tambem pode ser usado para nao sei quê não sei das quantas, para mais informação sobre essa função ler a página X".

Só que depois, a página X não diz absolutamente nada sobre esse operador :)

Ou seja, estou na mesma

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O melhor é seleccionares sempre a versão que estás a utilizar no quadro "This page is specific to " ... por exemplo VS2008.

O que diz é que x += y é equivalente a x = x + y

Mas vê antes esta versão: http://msdn.microsoft.com/en-us/library/sa7629ew.aspx

class AddAssigment
{
    static void Main()
    {
        //addition
        int a = 5;
        a += 6;
        Console.WriteLine(a);

        //string concatenation
        string s = "Hello";
        s += " world.";
        Console.WriteLine(s);
    }
}
/*
Output:
11
Hello world
*/

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Nesse tipo de situações o operador += serve para criar EventHandler's para diversos eventos e consequentemente o -= para remover o EventHandler do evento. Normalmente encontra-se um new EventHandler(NomeDoMetodo) após o = mas nesse caso, OnMenuItemActivated já deve ser um objecto do tipo EventHandler ou qualquer coisa do género.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mmmm... ok.

Que sintaxe mais esquisita, que é como quem diz: estou habituado a uma coisa diferente.

Vou ler documentação sobre event handling. Obrigado.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Concordo contigo, a primeira vez que vi o += neste tipo de situações achei estranho. Porque não um mero = como se faz com qualquer outro objecto? E para remover, porque não definir o evento como null? Mas pronto,lá decidiram que deveria ser assim por alguma razão...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora