using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;namespace Struct
{
    unsafe public struct node
    {
        public String name;
        public int age;
        public node *next;
    }
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }        private void button1_Click(object sender, EventArgs e)
        {
            node node1 = new node();
            node node2 = new node();
            node1.name = "www";
            node1.age = 24;
            node2.name = "yyy";
            node2.age = 22;
            node1.next = node2;            
        }
    }
}第15行报错:
错误 1 无法获取托管类型(“Struct.node”)的地址和大小,或无法声明指向它的指针 D:\Backup\我的文档\Visual Studio 2005\Projects\Struct\Struct\Form1.cs 15 22 Struct我说一下我的想法,我想用结构体实现一个链表,每一个节点有个指针指向下一个节点,我以前用C的,习惯用这个想法,我稍微了解了一下C#,知道指针在C#是不安全代码,但是目前我没找到更好的思路去解决,各位高手们帮帮忙吧

解决方案 »

  1.   

    把Struct改成class就好了。
    不需要unsafe.    public class node
        {
            public String name;
            public int age;
            public node next;
        }
      

  2.   


        public class Node
        {
            public String name;
            public int age;
            public Node next;
        }这样就可以了。因为C#的class是引用,Node next就是对下个节点的引用。
      

  3.   

        public class Node
        {
            public String name;
            public int age;
            public Node next;
        }