VB.NET PARA C#

NILSONTRES 19/07/2017 17:02:15
#475295
Não estou conseguindo ter os mesmos recursos que tenho ao trabalhar em vb, não me facilita obter as propriedades dos controles, não consigo nem definir no projeto qual o formulário que deve iniciar, não aparecem os forms para escolha.
Não consigo utilizar
with

end with
outro exemplo, faço isso com datagridview em VB:
datagrid.Rows(0).cells(0).value = [Ô]minhastring[Ô]
em C# não reconhece, preciso alterar algo em algum lugar ?
interessante que reconhece.
datagrid.Rows.add
mas datagrid.Rows(0).cells(0).value, não.
Preciso acessar uma web api, consegui apenas em C# e estou testando minha paciência para entrar nessa linguagem, mas quase desistindo.
Sempre ouvi dizer que não muda nada de um para outro, mas não me parece bem assim.
Obrigado
KERPLUNK 19/07/2017 17:08:04
#475296
Resposta escolhida
VB.NET é o [Ô]primo burro[Ô] do C#. é um dialeto meio confuso, pois não foi projetado para .NET e todos os seus recursos. No caso do datagrid, o VB.NET não faz diferenciação entre ítem de array e assinatura de método, é tudo parênteses. No C#, quando me refiro à item de array, usa-se colchetes, fica assim:

datagrid.Rows[0].Cells[0].Value = [Ô]asehasdkjfhdsa[Ô];


O caso é que você ainda está com programação procedural na cabeça. Você precisa mudar o modo de pensar. Uma indicação clara disso é você querer usar referência direta à célula. O ideal é usar OOP, List<T> e passar a List<T> para o DataSource do seu datagrid. Se não entendeu nada, é por aí que você deve começar. Você está focado em sintaxe, quando deveria estar focado em estrutura e arquitetura.
NILSONTRES 19/07/2017 17:28:44
#475297

Citação:

datagrid.Rows[0].Cells[0].Value = [Ô]asehasdkjfhdsa[Ô];


Hum, é a questão dos colchetes, e não dos parenteses, esta certo.

Citação:

O caso é que você ainda está com programação procedural na cabeça. Você precisa mudar o modo de pensar. Uma indicação clara disso é você querer usar referência direta à célula. O ideal é usar OOP, List<T> e passar a List<T> para o DataSource do seu datagrid. Se não entendeu nada, é por aí que você deve começar. Você está focado em sintaxe, quando deveria estar focado em estrutura e arquitetura



Não acho uma boa para min, repito para min, não estou dizendo que não é a melhor opção, só em alguns casos, mas geralmente grid livre porque via datsource fica amarrado.
E Quanto a iniciar o projeto em um determinado form ?, não encontrei.
With também não.
Obrigado pela ajuda KERPLUNK
KERPLUNK 19/07/2017 17:54:36
#475298
Iniciar o projeto em determinado form, você altera no assembly [Ô]Program.cs[Ô], nele vai ter uma linha tipo:

Application.Run(new Form1());

Form1 é o form que você quer que seja o inicial.

O C# não possui bloco With, não com a mesma sintaxe. Você usa o inicializador de objeto, mais ou menos assim:

MinhaClasse xx = new MinhaClasse()
{
Propriedade1 = [Ô]xxx[Ô],
Propriedade2 = [Ô]yyyy[Ô]
}


Ficar [Ô]amarrado[Ô] é justamente o que você quer fazer. Se você tem uma lista de entidades, altere valores em qualquer uma das propriedades de qualquer um dos membros da lista que o grid será modificado automaticamente. Além disso, você pode usar edição [Ô]inline[Ô] ou seja, grid editável, pois cada entidade da lista possui strong type nas propriedades. Isso significa que você pode alterar cada célula do grid para conter o controle equivalente ao tipo. Por exemplo, um campo(propriedade) do tipo DateTime, pode conter como template de controle um DatePicker e você pode alterar o valor da propriedade pelo valor retornado do controle DatePicker. Na prática, significa que você edita cada célula com o controle certo. Além disso, a convenção de cada propriedade e suas decorações são respeitadas, isso significa que você pode ter validações para suas propriedades que funcionam de forma automática, cabeçalhos de grids estarão sempre com o título correto, tipagem de célula também. Ou seja, usar OOP é padronizar todo seu projeto.

E somente com OOP que você vai poder alçar [Ô]voos mais altos[Ô]. Como por exemplo, camadas de aplicação construídas de forma independente, aplicáveis à qualquer tipo de UI, seja desktop, Web ou mobile, você terá as mesmas funcionalidades em todas as UI[ô]s. Isso tudo sem contar que TODA a plataforma .NET é OOP, portanto, seja VB.NET ou C# ou qualquer outro dialeto, se você não usa OOP, você está construindo algo que não é nem de perto algo profissional, mesmo que [Ô]atenda suas necessidades[Ô].

PS: para mim, não para min.
NILSONTRES 19/07/2017 18:07:31
#475300
Citação:

Ficar [Ô]amarrado[Ô] é justamente o que você quer fazer. Se você tem uma lista de entidades, altere valores em qualquer uma das propriedades de qualquer um dos membros da lista que o grid será modificado automaticamente. Além disso, você pode usar edição [Ô]inline[Ô] ou seja, grid editável, pois cada entidade da lista possui strong type nas propriedades. Isso significa que você pode alterar cada célula do grid para conter o controle equivalente ao tipo. Por exemplo, um campo(propriedade) do tipo DateTime, pode conter como template de controle um DatePicker e você pode alterar o valor da propriedade pelo valor retornado do controle DatePicker. Na prática, significa que você edita cada célula com o controle certo. Além disso, a convenção de cada propriedade e suas decorações são respeitadas, isso significa que você pode ter validações para suas propriedades que funcionam de forma automática, cabeçalhos de grids estarão sempre com o título correto, tipagem de célula também. Ou seja, usar OOP é padronizar todo seu projeto.

E somente com OOP que você vai poder alçar [Ô]voos mais altos[Ô]. Como por exemplo, camadas de aplicação construídas de forma independente, aplicáveis à qualquer tipo de UI, seja desktop, Web ou mobile, você terá as mesmas funcionalidades em todas as UI[ô]s. Isso tudo sem contar que TODA a plataforma .NET é OOP, portanto, seja VB.NET ou C# ou qualquer outro dialeto, se você não usa OOP, você está construindo algo que não é nem de perto algo profissional, mesmo que [Ô]atenda suas necessidades[Ô].

PS: para mim, não para min.


Perfeito KERPLUNK;
Obrigado pela ajuda e paciência.


Tópico encerrado , respostas não são mais permitidas