我想创建一个新的cs文件,里面写一个函数,这个函数可以被多个cs文件调用的。但是,只要我创建新的cs文件,VS就自动帮我生成了类。而且不能在类的外面写函数。怎么办?

解决方案 »

  1.   

    VB.NET支持“模块”,也就是貌似定义在类外面的函数。而这种函数实质上还是静态函数,对应的类其实就是模块。可见这么做没有什么副作用。
      

  2.   

    [Quote=引用 5 楼  的回复:]
    我刚刚也找到了这个方法。
    但听说这个方法,当有很多静态方法的时候,过于占用内存。
    静态方法是在编译时就分配好内存,实例方法是在你new时才分配~
      

  3.   

    C#的静态方法会暴内存?C++一个工程你搞10万个静态函数也不会爆内存的,空间开销和10万个类成员函数一样的从内部实现角度,成员函数也好静态成员函数也好,都只会存在一份,而且函数逻辑的实现方式没什么区别,普通成员函数只不过多一个this指针来标识属于哪个类实例而已这个概念套在C#上应该也可以
      

  4.   


    一是你为什么有这种需求,静态方法是不面向对象,是面向过程的,你的设计是不是有问题?只有那些通用工具类是用静态方法实现的比较多,比如数学函数,都在math类的静态方法里。
    二是静态方法和实例方法都只占用一份内存,每个实例还要保存一份方法地址,实际占用的内存更多。
      

  5.   

    如果按照你的意思,每个对象都有一份话,说明每一份肯定有不同之处,如果相同,.net再这样设计话,那也太傻了.
    好,所以,类的每个实例的方法就是不一样的,这个对象某个方法是
    int a,b,c
    a=b+c;
    下一个对象有可能是
    b=a+c;
    这可能么?
      

  6.   

    1.lz要求其实可以实现,你把vs的项目模版修改一下就可以,自动生成。
    2.有关静态类,只要你不依靠静态属性和字段,其实也没啥问题。呵呵,别被博客园那些错误博文给误导了。博客园那些人说的是静态属性,而非静态方法。
      

  7.   

    被多个cs调用不可以用公共函数么?静态函数虽然可以实现,但是并不完全符合面向对象的设计思想,违背了C#作为一个工具的本意
      

  8.   


    OO不是教条,可以看看C#、java中的数学函数,不都是静态的么,一切要看应用场景