请问 Environment.GetCommandLineArgs().GetValue( 1 ) 这个函数是什么意思,获得的值有什么用?
还有getValue()里只能填1,填0和2都出错 为什么呢

解决方案 »

  1.   

    http://blog.csdn.net/zjfei/archive/2009/09/27/4601943.aspx
      

  2.   

    自己顶下 
    这个方法的使用条件是什么阿?有人知道吗
    刚在一个项目里可以用这个方式,然后把代码全部复制带另一个项目里就不行了 
    新建的项目类型是console application
      

  3.   

    参考MSDN吧http://msdn.microsoft.com/zh-cn/library/system.environment.getcommandlineargs(v=VS.80).aspx返回包含当前进程的命令行参数的字符串数组返回值
    字符串数组,其中的每个元素都包含一个命令行参数。第一个元素是可执行文件名,后面的零个或多个元素包含其余的命令行参数。 备注
    --------------------------------------------------------------------------------数组中的第一个元素包含执行程序的文件名。如果该文件名不可用,则第一个元素等于 String.Empty。其他元素包含在命令行输入的任何附加标记。程序文件名可以(但不是必须)包含路径信息。除非在引号 (QUOTATION MARK, U+0022) 中出现空白,否则用空白(SPACE (U+0020) 或 CHARACTER TABULATION (U+0009))分隔命令行参数。引号中的空白被视为引用文本的一部分。分隔��不包括在命令行参数之中。引号后跟的反斜杠字符 (REVERSE SOLIDUS (U+005C)) 需要分情况解释。如果 2n 个反斜杠后跟引号,命令行参数则包含 n 个反斜杠。而且,如果其前面的文本为非引用文本,则开始引用其后的文本;如果其前面的文本为引用文本,则结束文本引用。如果 2n+1 个反斜杠后跟引号,命令行参数则包含 n 个反斜杠和一个原意引号。如果 n 个反斜杠后未跟引号,命令行参数则包含 n 个反斜杠。若要获取作为单个字符串的命令行,请使用 CommandLine 属性。
      

  4.   

    楼上的,MSDN我看过啦,但是还是不是很懂,可以告诉我4楼说的问题吗
      

  5.   


    你得看看Main方法在这两个程序中分别是怎么写的。。
      

  6.   

    main方法一样的,全部代码都一样阿,不知道怎么解决
      

  7.   

    可以填0和2吧 
    0 C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\WebDev.WebServer.EXE
    1 /port:1410
    2 /path:E:\demosite\testYuYing
    3 /vpath:/testYuYing
      

  8.   

    using System;
    using System.Windows.Forms;class SubMain { 
        
        static void Main() { 
            
            HelloWorld oHelloWorld = null; 
            
            oHelloWorld = new HelloWorld(); 
            
        } 
        

    using System;
    using System.Windows.Forms;
    using System.Diagnostics;
    class HelloWorld  { 
          private SAPbouiCOM.Application SBO_Application; 
        
        private void SetApplication() { 
                 
            SAPbouiCOM.SboGuiApi SboGuiApi = null; 
            string sConnectionString = null; 
            
            SboGuiApi = new SAPbouiCOM.SboGuiApi(); 
                    sConnectionString = System.Convert.ToString( Environment.GetCommandLineArgs().GetValue( 1 ) );
            Debug.WriteLine(sConnectionString);
      
      
            SBO_Application = SboGuiApi.GetApplication( -1 ); 
            
        } 
        
        
        public HelloWorld() { 
                      SetApplication(); 
                  
            SBO_Application.MessageBox( "Hello World",1, "", "", "" ); 
            
        } 
    } 这是本身就写好的代码,可以正确运行,然后全部代码复制到另一个console项目,按F6没有出差,但是运行的时候就出错了,environment.GetCommandLineArgs()为空
      

  9.   

    environment.GetCommandLineArgs().getValue(1)取不到值 为空
      

  10.   

    从你给出的代码来看,GetValue(1)得不到值是很正常的,因为你没有在Main方法里给它设置入参,应该只有GetValue(0)是有值的。令我觉得奇怪的倒是你说这个代码在原来的程序里可以执行,那在那个程序里得到的GetValue(1)是个什么值呢?
      

  11.   

    想起来了,你看看你原来那个程序的工程设置里面,Debug选项中的Start Options组下有个Command line arguments,里面是不是写了什么东西的。
      

  12.   

    比如你打算在一个类库方法中写相关代码(好共享给多个工程),而不是在Main方法中写......