MONO下用GTK编程

在Mono上可以说对System.Windows这一名称空间内的类支持不够好,MONO提倡的是用GTK来代替Windows
当然我有时间也看了下,顺便写了些东西
下面的代码是用GTK生成一个窗体

using System;
using Gtk;

namespace WolfDemo
{

   
public class MyMain
    {

       
private Gtk.Window window;
       
public static void Main (string[] args)
        {
           Application.Init ();
          
new MyMain ();
           Application.Run ();
        }
       
public MyMain()
       {   window
= new Gtk.Window ("Gtk# 编程");
           window.SetDefaultSize (
600, 400);
           window.DeleteEvent
+= new DeleteEventHandler (WindowDelete);
           window.ShowAll ();
       }

       
private void WindowDelete (object o, DeleteEventArgs args)
       {
           Application.Quit ();
           args.RetVal
= true;
       }
    }
}

在编译的时候,要引用GTK-SHARP.DLL才可以 如:
D:/>mcs MyMain.cs /r:D:/Mono-1.1.13/lib/mono/gtk-sharp/gtk-sharp.dll

然后用 Mono MyMain.exe 就可以看到效果了

其实gtk名称空间下面 还有其他的类 比如button什么的 当然用ildasm来看是个不错的选者 ,不过要专业一点的话
可以用反射来看

代码如下
          Type t=typeof(Window);
            MemberInfo [] myMemberInfo
=t.GetMethods ();
           
foreach (MemberInfo m in myMemberInfo)
            {
                Console.WriteLine(m.Name  );
            }
当我运行完一看,全是Get Set 之类的 看来开发GTK这群家伙很可能都是些搞java的呵呵         

响应式编程(Reactive Programming)是一种基于异步数据流的编程范式,它的核心思想是将任何变化看作是一系列的事件流,并使用类似于观察者模式的方式进行处理。C#语言提供了许多实现响应式编程的工具,其中最常用的就是Rx(Reactive Extensions)框架。 在C#中,可以使用Mono开发跨平台的应用程序,并在其中使用Rx框架实现响应式编程。以下是一些实现响应式编程的步骤: 1. 引入Rx框架:可以通过NuGet包管理器引入Rx框架。 2. 创建数据流:使用Observable类创建数据流。 3. 订阅数据流:使用Subscribe方法订阅数据流,并定义观察者对象。 4. 处理数据流:使用LINQ语句对数据流进行处理。 以下是一个简单的示例代码,演示了如何使用Mono和Rx实现响应式编程: ``` using System; using System.Reactive.Linq; class Program { static void Main(string[] args) { var numbers = Observable.Range(1, 10); var subscription = numbers .Where(x => x % 2 == 0) .Select(x => x * x) .Subscribe( x => Console.WriteLine("OnNext: {0}", x), ex => Console.WriteLine("OnError: {0}", ex.Message), () => Console.WriteLine("OnCompleted") ); Console.ReadLine(); subscription.Dispose(); } } ``` 在此示例中,我们使用Observable类创建了一个数据流,该数据流包含1到10之间的整数。然后,我们使用Where和Select方法对数据流进行过滤和转换。最后,我们使用Subscribe方法订阅了数据流,并定义了观察者对象,以便在数据流发生变化时进行处理。在订阅期间,我们使用OnNext方法处理数据流中的每个元素,在处理完所有元素后,我们使用OnCompleted方法进行清理工作。如果出现任何错误,我们可以使用OnError方法处理异常。 总之,使用Mono和Rx框架可以轻松地实现跨平台的响应式编程,帮助开发人员更有效地处理异步数据流。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值