以前::、.、和->操作符全都由.代替。C#可以用指针,据说用指针就超出了它的安全机制范围。
好像它的类型安全机制不允许指针,不允许如直接存取内存等不安全的操作
如果你不用类型安全,就可以用指针。

解决方案 »

  1.   

    A question that might come up is how to emulate function pointers when there are no pointers in C#.
    这句话摘自《Presenting C#》,好象是很明确的指出C#中没有指针吧
      

  2.   

    C#其实就是传统C++的阄割版。有点类似JAVA。
      

  3.   

    类引用是隐式指针,象C++的引用类型一样是安全的。显式指针只有在用unsafe标明的部分使用。
      

  4.   

    c#中可以用指针,但要放在unsafe{}里
      

  5.   

    的确!C#里面的.都把我搞晕了。
    C++里面的类的静态变量是用的ClassName::func()来引用,
    而在C#里面就是ClassName.func()
    我想这样可以减少程序员的错误。还是有一定的好处的,不然MS在设计时也不会这样做了。
      

  6.   

    可以在unsafe{}中使用,也可以定义不安全类:
        unsafe class A
    在不安全类里可以定义一些不安全方法和变量,但只能在不安全类内部使用,否则编译出错。
    还可以进行不安全编译:
        csc \unsafe wdong.cs
        
      

  7.   

    就是呀,换了个说法的。还是用的把,
    using System;
    class Test
    {
    unsafe static void WriteLocations(byte[] arr) {
    fixed (byte *p_arr = arr) {
    byte *p_elem = p_arr;
    for (int i = 0; i < arr.Length; i++) {
    byte value = *p_elem;
    string addr = int.Format((int) p_elem, "X");
    Console.WriteLine("arr[{0}] at 0x{1} is {2}", i,  addr, value);
    p_elem++;
    }
    }
    }
    static void Main() {
    byte[] arr = new byte[] {1, 2, 3, 4, 5};
    WriteLocations(arr);
    }
    }只不过使用了unsafe 以及fix object来标识罢了!
      

  8.   

    不是指针,
    是对象引用吧。
    和JAVA差不多啊。
      

  9.   

    Honney(!Honney) 说得对,没有指针,只有引用,类似java
      

  10.   

    我从来也不用指针,因为VB没有指针。但我还是可以做很多事情。不要依赖于指针,但其实
    .........
    .........
    C#有指针有指针有指针有指针有指针有指针有指针有指针有指针有指针!
    有真正的真正的真正的真正的真正的真正的真正的指针!
    看看楼上们辛苦的回答吧,怎么还搞不清楚,谁再说C#没有指针我就跟谁急
      

  11.   

    C#有指针,
    但指针最好少用,不然,戳到屁股怎么办?          <摘自ANDERS回忆录  2001.5.28 99:99:99>