You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#中FTP登录如何传递非0的空int类型端口参数

解决C# int类型端口参数传递空值的问题

C#里值类型int本身无法直接传递null,针对你遇到的FTP无端口的场景,可按以下方案处理:

  • 直接使用FTP默认端口21
    绝大多数未指定端口的FTP服务默认使用21端口,这是最省心的解决方案,直接把端口参数传21即可:

    string FeedFile = FTPOp(
          "ftp.XXXXXX.com", 21, "USERNAME", "PASSWORD", 
          string.Format("/Documents/Vendor/acknowledgements/{0}", FeedFile),
          string.Format(RootDirectory + Name + "\\Input\\" + FeedFile)
    );
    
  • 检查FTPOp是否有重载版本
    查看遗留代码中的FTPOp方法,是否存在不需要端口参数、或端口参数为int?(可空整数)的重载。如果有,直接调用对应重载,比如支持int?的版本可以传null:

    string FeedFile = FTPOp(
          "ftp.XXXXXX.com", null, "USERNAME", "PASSWORD", 
          string.Format("/Documents/Vendor/acknowledgements/{0}", FeedFile),
          string.Format(RootDirectory + Name + "\\Input\\" + FeedFile)
    );
    
  • 修改FTPOp方法参数类型(若允许改动代码)
    如果有权限修改遗留的FTPOp方法,把端口参数改为int?(可空整数),在方法内部处理null的情况——默认使用21端口:

    // 修改后的FTPOp方法签名
    public static string FTPOp(string site, int? port, string username, string password, string remotePath, string localPath)
    {
        int actualPort = port ?? 21; // 若port为null则用默认21
        // 后续FTP连接逻辑使用actualPort
        // ...
    }
    

    调用时直接传null即可,无需担心参数类型不匹配。

内容的提问来源于stack exchange,提问作者Ghostwheel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 12:57:36