using System;
namespace ConsoleApplication4
{
/// <summary>
/// Class1 的摘要说明。
/// </summary>
public struct Point 
{
public int x, y; public Point(int p1, int p2) 
{
x = p1;
y = p2;    
}
}
class Class1
{

/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main(string[] args)
{
Point p=new Point(1,2);
Console.WriteLine("Point.X={0},Point.Y={1}",p.x,p.y);
//使用 New 运算符创建结构对象时,将创建该结构对象,
//并且调用适当的构造函数。与类不同的是,
//结构的实例化可以不使用 New 运算符。
//如果不使用“新建”(new),那么在初始化所有字段之前,
//字段将保持未赋值状态,且对象不可用。
//Point t;
//t.x=1; //没有出始化结构体Point字段y,根本无法编译通过.
//Console.WriteLine("Point.X={0},Point.Y={1}",t.x,t.y);
Console.ReadLine();
}
}
}

解决方案 »

  1.   

    没写完?  跑题?我问的不是这个啊如果包含的只是基本数据类型  就很好判断了可是如果里面包含 引用类型的成员呢?比如 
    //伪代码 意会
    struct data{
    string name
    string pwd
    }class proc{
    public data getData(string select){
    //todo
    }
    }static void main(){
    proc p = new p;
    data d = p.getData("获得数据的条件");
    }
    可是如果  p.getData()  没有得到满足条件的数据 而无法封装成data类型的 对象那么data d = p.getData()   中的d  应该是个无效的对象(如果是引用对象就应该是NULL)
    可是d在这里是个struct   而且微软一再声明它数据值类型  那我要怎么判断 这个对象是否有效呢?
    if(d == null){
    //d没有实例化
    }
    这样是会报错的
      

  2.   

    我现在在用 if(d.name == null){ //d没有实例化,是无效的 }  来处理,但我觉得不应该这么判断吧?maybe?