Mav3r1cK Posted November 29, 2015 at 10:48 PM Report Share #590230 Posted November 29, 2015 at 10:48 PM (edited) Estou tentando acessar variáveis que são private(sendo os métodos public),para que eu possa usa-las para junto com os TextBox para calcular o valor total. Mas como é possível fazer isto ? É necessário eu fazer deste jeito,pois é o que se pede em um exercício que preciso fazer. Edited November 29, 2015 at 10:49 PM by Mav3r1cK "O que nós sabemos é uma gota; o que ignoramos é um oceano" "Verba volant,scripta manent" Link to comment Share on other sites More sharing options...
He B TeMy Posted November 29, 2015 at 10:55 PM Report Share #590231 Posted November 29, 2015 at 10:55 PM Tás a falar aceder variáveis que são declaradas dentro dum método fora desse método? Impossível. Link to comment Share on other sites More sharing options...
Muryllo Posted November 30, 2015 at 10:40 PM Report Share #590250 Posted November 30, 2015 at 10:40 PM É impossível fazer isso. Link to comment Share on other sites More sharing options...
Mav3r1cK Posted December 11, 2015 at 01:01 AM Author Report Share #590558 Posted December 11, 2015 at 01:01 AM Então pessoal,fazia muito tempo que não mexia com C# e já havia esquecido o nível da hierarquia de encapsulamento do C#,por que é óbvio que não tem como acessar uma variável private,já que private somente dentro da Classe é possível acessar. Enfim obrigado as respostas,eu já consegui solucionar meu problema faz um tempo,só esqueci de fechar este tópico,mas desde já agradeço por tudo. "O que nós sabemos é uma gota; o que ignoramos é um oceano" "Verba volant,scripta manent" Link to comment Share on other sites More sharing options...
UBira Posted September 23, 2016 at 08:12 PM Report Share #599111 Posted September 23, 2016 at 08:12 PM Ola senhores, Só dando opções pra vocês, é possível acessar variáveis privadas da instancia utilizando Reflection, segue um método genérico que efetua isso, é só chamar passando os parâmetros. /// <summary> /// Utilizando reflection para pegar atributo do objeto /// </summary> /// /// <param name="type">O Tipo da instancia.</param> /// <param name="instance">A instancia do Objeto.</param> /// <param name="fieldName">O nome do atributo que retornará o erro.</param> /// /// <returns>O valor do atributo do objeto passado.</returns> internal static object GetInstanceField(Type type, object instance, string fieldName) { BindingFlags bindFlags = BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static; FieldInfo field = type.GetField(fieldName, bindFlags); return field.GetValue(instance); } Pra Chamar é só : string str = GetInstanceField(typeof(SuaClasse), instancia, "NomeAtributo") as string; Espero que ajude num futuro problema parecido! 1 Report Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now