有这样的C++代码,请问怎么用C#改写啊,我头都大了,晕呼!
void VALIDATEIO(int x,char *fmt,...)
{
va_list ap;
va_start(ap,fmt);
if(!(x))
{
fprintf(stderr,"In %s %d#,",__FILE__,__LINE__);
vfprintf(stderr,fmt,ap);
perror("");
}
va_end(ap);
}

解决方案 »

  1.   

    这个其实就是C/C++对不定参数的处理,C#里面可以使用param数组参数就可以了,由于没有实际上下文场景,下面只是示例代码:
    void   VALIDATEIO(int   x,char   *fmt,...) 

      va_list   ap; 
      va_start(ap,fmt); 
      if(!(x)) 
      { 
        fprintf(stderr,"In   %s   %d#,",__FILE__,__LINE__); 
        vfprintf(stderr,fmt,ap); 
        perror(""); 
      } 
      va_end(ap); 
    }void ValidateIO(int x, param string[] foramt)
    {
      if(x==0)
      {
        Console.Write(string.Format("In {0} {1},",__FILE__,__LINE__); //不知道这个的上下文,没法写
        if(format != null)
        {
          foreach(string var in format)
          {
            Console.Write(var);
          }
        }
      }
    }