zoukankan      html  css  js  c++  java
  • G# 微软的AOP?

    G#是一种基于.Net平台的一门新的语言, 它可以在编译期以及运行期为原有的代码注入新的代码. 并且新的代码同样能保证.net平台下的类型安全性.

    和CodeSmith不同的是 它的代码生成技术是为已有的代码添加新的功能, 也就是目前AOP技术所要实现的目标.

    如果你使用过Aspectj就会发现它语法的丑陋, 而G#的语法是C#2.0的一个子集,看上去非常的容易理解.并且G#是基于.Net的IL语言的,所以无论是C#还是VB.Net都可以发挥它的威力.

    来看一个小例子,你就会发现G#的优美之处.

    public class Client
    {
     
    public Client()
     
    {
      Messenger(“Hello World”); 
     }

     
    private void Messenger(string message)
     
    {
      Console.WriteLine(message);
     }

    }


    public generator Rename
    {
     
    static generation ChangeIt  : target Client.Messenger(string message)
     
    {
      pre
      
    {
       
    string oldMessage = message;

       message 
    = “Hello G#”;
      }

      post
      
    {
       message 
    = oldMessage;
      }

     }

    }


    再看看利用G#注入后的新的代码:

    private void Messenger(string message)
    {
     
    // From ChangeIt pre block.
     string oldMessage = message;

     
    // From ChangeIt pre block.
     message = “Hello G#”;

     
    // From the Messenger method body.
     Console.WriteLine(message);

     
    // From ChangIt post block.
     message = oldMessage;
    }


    有关G#的具体信息请访问这里

  • 相关阅读:
    C语言超大数据相加计算整理
    pc端页面加载更多条信息(loading)
    web前端学习路线
    linux启动流程
    Computer Science: http://www.cs.odu.edu/~cs779/
    编程网站
    sublime-text 键绑定
    monokai-background
    .vimrc
    vim 正则表达式查找ip
  • 原文地址:https://www.cnblogs.com/idior/p/134257.html
Copyright © 2011-2022 走看看