1,public partial class menu : Form  这句话中的类menu前面用partial来修饰是什么意思 
2,应用程序的主入口点static void Main()在一个.cs类文件中而不是一个窗体文件?
3,我有一个2003中的类文件,其中的代码如下:
namespace Class
{
public class DataAccess
{
public DataAccess()
{
} public static string ConnectionStrBySql
{
                   ......我在2005中引用这个文件,先输入Class.可以点出DataAccess类,但是再点就点不出来下面的静态的方法和属性了,于是我又先实例化这个类:Class.DataAccess byhum=new Class.DataAccess() ;再输入byhum.,可是还是点不出来任何东西,请问这是怎么回事?

解决方案 »

  1.   

    第二个问题明白了,2005会生成一个Program.cs文件,这个就是程序的主入口点,看来2005区分的更细了,把用户编写的代码和Windows 窗体设计器生成的代码分别放在了两个文件中
      

  2.   

    我们把partial 叫做modifier而不是关键字. 
    同一类型在不同文件里面都需要使用partial 
    可以只在一个文件,两个文件,或者更多文件中使用partial 
    Base class只需要声明一次;若多次声明必需完全一致.
      

  3.   

    1.MSDN有答案
    2.Main()可以看作只是一个方法,不是窗体文件
    3.public static string ConnectionStrBySql我不知道是什么,如果是方法又看不到返回类型,如果是属性为什么又要static来修饰?不过我可以告诉你static是不用实例化引用的,你试试把static去掉试试
      

  4.   

    谢楼上二位,关于第三个问题,这样:
    namespace Class
    {
    public class DataAccess
    {
    public DataAccess()
    {
    }                  public static DataTable GetAccessData(string sql)
                      ......
    GetAccessData是一个靜态的方法,我要在另一个文件中引用它,在2003中直接这样:
    string xide=Class.DataAccess.GetAccessData(strsql);就可以了,可是我在2005中我在Class.DataAccess的后面点不出来任何方法,
    把GetAccessData方法的static 去掉,进行类的实例化,Class.DataAccess byhum=new Class.DataAccess() ;,再输入byhum还是得不到任何方法
      

  5.   

    2005中用静态和2003是一样的
    IDE不提示?直接输进去编译能通过么
    或者直接
    string xide=DataAccess.GetAccessData(strsql);
      

  6.   

    这么简单的两行代码却是错的,不明白:
        string by="select * from b";
        DataTable dt = DataAccess.GetAccessData(by);提示:错误  字段初始值设定项无法引用非静态字段、方法或属性“sqlconn.by”我先定义一个字符串变量by,然后在DataAccess.GetAccessData方法中传递,怎么会出错呢?
      

  7.   

    Red_angelX(当你手淫你会想起谁) :IDE不提示,直接输进去编译能通过但是却又出现了这种错误:string by="select * from b";
        DataTable dt = DataAccess.GetAccessData(by);提示:错误  字段初始值设定项无法引用非静态字段、方法或属性“sqlconn.by”除非我改成这样才可以:
    DataTable dt = DataAccess.GetAccessData("select * from b");
    为什么呢?
      

  8.   

    楼主为什么总不喜欢把代码贴全,如不出所料,代码应该是这样的:public class MyClass
    {
      private string by="select * from b";
      public static DataTable MyMethod()
      {
        DataTable dt = DataAccess.GetAccessData(by);
        ...
      }
    }只有这样才会出现扇面那个错误,在静态方法里面使用非静态成员。至于第3个问题,不把问题描述清楚,把代码贴全,也是没办法解答的……
      

  9.   

    代码没贴全是因为我觉得太长,现在贴全,大家帮忙看一看:
    类Class:
    using System;
    using System.Data;
    using System.Data.SqlClient;
    using System.Data.OleDb;
    using System.Data.Odbc;
    using System.IO;namespace Class
    {
    /// <summary>
    /// Class1 的摘要说明。
    /// </summary>
    public partial class DataAccess
    {
    public DataAccess()
    {
    //
    // TODO: 在此处添加构造函数逻辑
    //
    }
    public static DataTable GetAccessData(string sql)
    {
    OleDbConnection conn=new OleDbConnection (ConnectionStrByAccess);
    OleDbDataAdapter p_Adapter = new OleDbDataAdapter(sql,conn);
    DataTable p_Dt = new DataTable();
    try
    {
    p_Adapter.Fill(p_Dt);
    p_Adapter.Dispose();
    return p_Dt;
    }
    catch(System.Data.OleDb.OleDbException exp)
    {
    throw exp;
    }
    finally
    {
    conn.Close();
    }
    }在另一个类中调用:
    using System;
    using System.Data;
    using System.Data.SqlClient;public class Wr
    {
        //这样调用不行,提示:错误  字段初始值设定项无法引用非静态字段、方法或属性“sqlconn.by”
        string by = "select * from b";
        DataTable dt = Class.DataAccess.GetAccessData(by);
    }