none
Interface RRS feed

  • Pergunta

  • Alguem tem algum exemplo de utilizar Interface, porem a implementação da interface e a classe estao em arquivos.cs diferentes:

    Exemplo Interface:

    interface IPoint
    {
       // Property signatures:
       int x
       {
          get;
          set;
       }

       int y
       {
          get;
          set;
       }
    }

    quarta-feira, 13 de janeiro de 2010 12:56

Respostas

  • Resolvi este caso da seguinte forma adicionei um objeto do tipo Interface, segue abaixo exemplo:


    namespace Interface
    {
        public interface IServicos
        {
            void Metodo01();
            void Metodo02();
        }
    }

    --------------------------------------------------

    namespace Interface
    {
        public class clsServicos : IServicos
        {
            public void Metodo01()
            {
                MessageBox.Show("Metodo01");
            }

            public void Metodo02()
            {
                MessageBox.Show("Metodo02");
            }
        }
    }

    --------------------------------------------------
    namespace Interface
    {
        public partial class Form1 : Form
        {
            IServicos servicos = new clsServicos();

            public Form1()
            {
                InitializeComponent();
            }
           
            private void button1_Click(object sender, EventArgs e)
            {
                servicos.Metodo01();
            }

            private void btnMetodo02_Click(object sender, EventArgs e)
            {
                servicos.Metodo02();
            }
        }
    }

    • Marcado como Resposta NSantos quinta-feira, 14 de janeiro de 2010 11:50
    quinta-feira, 14 de janeiro de 2010 11:49
  • Amigo,

    Na verdade você não precisa criar todas as classes no mesmo Namespace. Poderia ter feito em diferentes namespaces e diferentes arquivos. Quando for utilizar uma classe em um namespace específico, basta declará-lo utilizando a keyword using . Ex.:

    Arquivo 1:

    namespace Interfaces
    {
        public interface IServicos
        {
            void Metodo01();
            void Metodo02();
        }
    }

    Arquivo 2:

    using Interfaces;
    
    namespace Implementacoes
    {
        public class clsServicos : IServicos
        {
            public void Metodo01()
            {
                MessageBox.Show("Metodo01");
            }
    
            public void Metodo02()
            {
                MessageBox.Show("Metodo02");
            }
        }
    }


    Arquivo 3:

    using Interfaces;
    using Implementacoes;
    
    namespace Forms
    {
        public partial class Form1 : Form
        {
            IServicos servicos = new clsServicos();
    
            public Form1()
            {
                InitializeComponent();
            }
           
            private void button1_Click(object sender, EventArgs e)
            {
                servicos.Metodo01();
            }
    
            private void btnMetodo02_Click(object sender, EventArgs e)
            {
                servicos.Metodo02();
            }
        }
    }

    Abraço.

    Ronney

    • Marcado como Resposta NSantos quinta-feira, 14 de janeiro de 2010 12:39
    quinta-feira, 14 de janeiro de 2010 12:16

Todas as Respostas

  • Acho que se indicar o namespace completo ele encontra.

    Ex



    public class InterfaceImplementer : Projeto1.Interfaces.IPoint
    quarta-feira, 13 de janeiro de 2010 13:05
    • Sugerido como Resposta Alcenir Moretto quarta-feira, 13 de janeiro de 2010 15:26
    quarta-feira, 13 de janeiro de 2010 13:13
  • Resolvi este caso da seguinte forma adicionei um objeto do tipo Interface, segue abaixo exemplo:


    namespace Interface
    {
        public interface IServicos
        {
            void Metodo01();
            void Metodo02();
        }
    }

    --------------------------------------------------

    namespace Interface
    {
        public class clsServicos : IServicos
        {
            public void Metodo01()
            {
                MessageBox.Show("Metodo01");
            }

            public void Metodo02()
            {
                MessageBox.Show("Metodo02");
            }
        }
    }

    --------------------------------------------------
    namespace Interface
    {
        public partial class Form1 : Form
        {
            IServicos servicos = new clsServicos();

            public Form1()
            {
                InitializeComponent();
            }
           
            private void button1_Click(object sender, EventArgs e)
            {
                servicos.Metodo01();
            }

            private void btnMetodo02_Click(object sender, EventArgs e)
            {
                servicos.Metodo02();
            }
        }
    }

    • Marcado como Resposta NSantos quinta-feira, 14 de janeiro de 2010 11:50
    quinta-feira, 14 de janeiro de 2010 11:49
  • Amigo,

    Na verdade você não precisa criar todas as classes no mesmo Namespace. Poderia ter feito em diferentes namespaces e diferentes arquivos. Quando for utilizar uma classe em um namespace específico, basta declará-lo utilizando a keyword using . Ex.:

    Arquivo 1:

    namespace Interfaces
    {
        public interface IServicos
        {
            void Metodo01();
            void Metodo02();
        }
    }

    Arquivo 2:

    using Interfaces;
    
    namespace Implementacoes
    {
        public class clsServicos : IServicos
        {
            public void Metodo01()
            {
                MessageBox.Show("Metodo01");
            }
    
            public void Metodo02()
            {
                MessageBox.Show("Metodo02");
            }
        }
    }


    Arquivo 3:

    using Interfaces;
    using Implementacoes;
    
    namespace Forms
    {
        public partial class Form1 : Form
        {
            IServicos servicos = new clsServicos();
    
            public Form1()
            {
                InitializeComponent();
            }
           
            private void button1_Click(object sender, EventArgs e)
            {
                servicos.Metodo01();
            }
    
            private void btnMetodo02_Click(object sender, EventArgs e)
            {
                servicos.Metodo02();
            }
        }
    }

    Abraço.

    Ronney

    • Marcado como Resposta NSantos quinta-feira, 14 de janeiro de 2010 12:39
    quinta-feira, 14 de janeiro de 2010 12:16

  • Muito bom!

    Agora vou separar em soluções.

    Obrigado, Valeu ;-).

    quinta-feira, 14 de janeiro de 2010 12:39