1。用C#实现以下功能
   a 产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复。
   b 对上面生成的数组排序,需要支持升序、降序两种顺序
2。请说明在.net中常用的几种页面间传递参数的方法,并说出他们的优缺点。
3。请说明.net中的错误处理机制,并举例
4。请说出强名的含义
5。请列出c#中几种循环的方法,并指出他们的不同
6。请指出.net中所有类型的基类
7。请指出GAC的含义
8。SQL SREVER中,向一个表中插入了新数据,如何快捷的得到自增量字段的当前值
哪位知道准确的答案请留贴

解决方案 »

  1.   

    1.a 不会
    b arraylist.sort
    2.get/post??还是说session cookie??
    3.try catch??
    4.不晓得
    5.foreach while for区别,实现功能不同吧,其他说不清楚
    6.Object
    7.GC?垃圾回收?GAC不知道
    8.取@@indentity呵呵,不会的等高手答!发觉自己比半年前有很大进步!
      

  2.   

    1。用C#实现以下功能
    int[] iArray = new int[100]; Random random = new Random();
    ArrayList arraylist = new ArrayList(100);

    for(int i = 0; i < 100; i++)
    {
    arraylist.Add(i);
    } for(int i = 0; i < 100; i++)
    {
    int iKey = random.Next(0,99-i);

    iArray[i] = Convert.ToInt32(arraylist[iKey]);
    arraylist.RemoveAt(iKey);
    } Array.Sort(iArray);//排序 Array.Reverse(iArray);//反序不过牵涉到了ArrayList 装箱.恩恩...不知道考官会怎么想...
      

  3.   

    全局程序集缓存 (global assembly cache, GAC) 
    计算机范围内的代码缓存,它存储专门安装的程序集,这些程序集由计算机上的许多应用程序共享。在全局程序集缓存中部署的应用程序必须具有强名称。怎么老是考强名称,不太明白强名称是什么意思
      

  4.   

    8.参考 IBUYSPY 的例子:注意 CustomerID 是自增字段////////////////////////////////////////////////////////////////
                SqlParameter parameterCustomerID = new SqlParameter("@CustomerID", SqlDbType.Int, 4);
                parameterCustomerID.Direction = ParameterDirection.Output;
                myCommand.Parameters.Add(parameterCustomerID);            try {
                    myConnection.Open();
                    myCommand.ExecuteNonQuery();
                    myConnection.Close();                // Calculate the CustomerID using Output Param from SPROC
                    int customerId = (int)parameterCustomerID.Value;                return customerId.ToString();
                }
                catch {
                    return String.Empty;
                }
    //////////////////////////////////////////////////////////////////////////////CREATE Procedure CustomerAdd
    (
        @FullName   nvarchar(50),
        @Email      nvarchar(50),
        @Password   nvarchar(50),
        @CustomerID int OUTPUT
    )
    ASINSERT INTO Customers
    (
        FullName,
        EMailAddress,
        Password
    )VALUES
    (
        @FullName,
        @Email,
        @Password
    )SELECT
        @CustomerID = @@Identity
    GO
      

  5.   


    一:
             List<int> L=new List<int>();
             Random random = new Random();
             for (int i = 1; i <= 100; i++)
             {
                 if (L.IndexOf(i) < 0)
                 {
                     L.Add(random.Next(1,100));
                 }
             }
             L.Reverse();
             L.Sort();
    二:Cookie(不安全) Session(可靠,可用语不支持HTTP Cookie浏览器)  Application(效率低)  查询字符串(方便) DataBase(安全,强) 
    服务器控件持有有数据的页面间传输  等等,这些说明到处都有,不说了三:异常是从 Exception 类类继承的对象。异常从发生问题的代码区域引发,然后沿堆栈向上传递,直到应用程序处理它或程序终止。
       try
       { //执行代码,不确定是否会出错  }
       catch
       {  //出错处理 }
       finally
       {  //无论怎样,都要执行 }
    四:垃圾回收的原理是根据是否空引用,和该数据类型占用内存来判断该收回多少内存.强类型说白就是必须要有个数据类型.
    五:这个太简单.不说了
    六:object
    七:全局访问缓存
    八:
    INSERT INTO jobs (job_desc,min_lvl,max_lvl)
    VALUES ('Accountant',12,125)
    SELECT @@IDENTITY AS 'Identity'
      

  6.   

    强名称是由程序集的标识加上公钥和数字签名组成的,其中,程序集的标识包括简单文本名称、版本号和区域性信息(如果提供的话)。强名称是使用相应的私钥,通过程序集文件(包含程序集清单的文件,并因而也包含构成该程序集的所有文件的名称和散列)生成的。Microsoft&reg; Visual Studio .NET&reg; 和在 .NET Framework SDK 中提供的其他开发工具能够将强名称分配给一个程序集。强名称相同的程序集应该是相同的
      

  7.   

    GAC == Global Assembly Cache
      

  8.   

    http://www.codeproject.com/dotnet/DemystifyGAC.asp
      

  9.   

    Creating and Using Strong-Named Assemblies
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconWorkingWithStrongly-NamedAssemblies.asp
      

  10.   

    强名称是由程序集的标识加上公钥和数字签名组成的,其中,程序集的标识包括简单文本名称、版本号和区域性信息(如果提供的话)。强名称是使用相应的私钥,通过程序集文件(包含程序集清单的文件,并因而也包含构成该程序集的所有文件的名称和散列)生成的。Microsoft&reg; Visual Studio .NET&reg; 和在 .NET Framework SDK 中提供的其他开发工具能够将强名称分配给一个程序集。强名称相同的程序集应该是相同的。通过签发具有强名称的程序集,您可以确保名称的全局唯一性。强名称还特别满足以下要求: 强名称依赖于唯一的密钥对来确保名称的唯一性。任何人都不会生成与您生成的相同的程序集名称,因为用一个私钥生成的程序集的名称与用其他私钥生成的程序集的名称不相同。 
    强名称保护程序集的版本沿袭。强名称可以确保没有人能够生成您的程序集的后续版本。用户可以确信,他们所加载的程序集的版本出自创建该版本(应用程序是用该版本生成的)的同一个发行者。 
    强名称提供可靠的完整性检查。通过 .NET Framework 安全检查后,即可确信程序集的内容在生成后未被更改过。但请注意,强名称中或强名称本身并不暗含信任级别,例如由数字签名和支持证书提供的信任。 
    在引用具有强名称的程序集时,您应该能够从中受益,例如版本控制和命名保护。如果此具有强名称的程序集以后引用了具有简单名称的程序集(后者没有这些好处),则您将失去使用具有强名称的程序集所带来的好处,并依旧会产生 DLL 冲突。因此,具有强名称的程序集只能引用其他具有强名称的程序集。
      

  11.   

    我的数组乱排思路(洗牌)
    A为已知数组,将对A进行打乱排序
    建立同长度数组B 
    取[0,a.len] 的随机数i
    取a[i]
    放入b[0]
    a[i]=a[a.len]
    取随机数0- a.len-1 .....循环
      

  12.   

    static void Main(string[] args)
    {
    int num = 100;
    int[] Result = new int[100];
    //生成数组
    for(int i = 0 ; i < num ; i++)
    {
    Result[i] = i;
    }
    Assertion.ShowNums(Result);
    //胡乱数组
    for(int i = 0 ; i < num ; i++)
    {
    int RandomNum = new Random(i).Next(100);
    int Temp = Result[i];
    Result[i] = Result[RandomNum];
    Result[RandomNum] = Temp;
    }
    //Assertion.ShowNums(Result);
    ArrayList TempList = new ArrayList();
    for(int i = 0 ; i < num ; i++)
    {
    TempList.Add(Result[i]);
    }
    TempList.Sort(null);
    for(int i = 0 ; i < num ; i++)
    {
    Result[i] = (int)TempList[i];
    }
    //Assertion.ShowNums(Result);
    Console.WriteLine("Gave Over");
    }
      

  13.   

    可以建议这样的一个算法,就是用HASH,把字母A-Z,如果区分大小写那再搞个a-z
     用这些字母每个做一个KEY建立一个值为0的HASH
     然后只要遍历一次就可以把所有的文本都分析完