quinta-feira, 19 de janeiro de 2012

Criar e utilizar DLL no MonoDevelop

Tal como no Visual Basic também o Mono Develop permite criar DLL's a utilizar em outras aplicações.
Primeiro a DLL:


Eis o código:
using System;
using System.Collections.Generic;  //namespace para as listas

namespace class_valores
{
public class valores
{
private List<int> lista;
//construtor
public valores ()
{
lista=new List<int>();
}
//construtor versao 2
public valores (int x)
{
lista=new List<int>();
lista.Add(x);
}
//destrutor
public void destroy()
{
lista.Clear();
}
//inserir um elemento
public void adiciona(int x)
{
lista.Add(x);
}
//delvove o numero de elementos
public int n_elementos()
{
return lista.Count;
}
//calcula e devolve a media
public double media()
{
double m;
int i,t;

t=0;
for(i=0;i<lista.Count;i++)
t=t+lista[i];
m=(double)t/(double)lista.Count;
return m;
}
//calcula e devolve a soma total
public int soma()
{
int t;

t=0;
foreach(int x in lista)
{
t+=x;
}
return t;
}
//devolve o maior
public int maior()
{
int m;
m=0;
if(lista.Count>0){
m=lista[0];
foreach(int x in lista){
if(x>m) m=x;
}
}
return m;
}
//devolve o menor
public int menor()
{
int m;
m=0;
if(lista.Count>0){
m=lista[0];
foreach(int x in lista){
if(x<m) m=x;
}
}
return m;
}
}
}


Agora a aplicação que vai utilizar a DLL.
Primeiro adicionamos a referência à DLL





Depois disto temos na lista das referências
Agora sim podemos inserir o código:

using System;
using Gtk;
using class_valores;

public partial class MainWindow: Gtk.Window
{
public class_valores.valores val = new class_valores.valores();

public MainWindow (): base (Gtk.WindowType.Toplevel)
{
Build ();
}

protected void OnDeleteEvent (object sender, DeleteEventArgs a)
{
Application.Quit ();
a.RetVal = true;
}
//Terminar
protected void OnButton2Clicked (object sender, System.EventArgs e)
{
val.destroy();
Application.Quit ();
//throw new System.NotImplementedException ();
}
//calcular
protected void OnButton1Clicked (object sender, System.EventArgs e)
{
int x;

x=Convert.ToInt16(this.entry1.Text);

val.adiciona(x);
this.lb_maior.Text=val.maior ().ToString();
this.lb_menor.Text=val.menor().ToString();
this.lb_soma.Text=val.soma().ToString();
this.lb_media.Text=val.media().ToString();
//throw new System.NotImplementedException ();
}
}

No final é só correr.

Sem comentários:

Enviar um comentário