' postData'的默认参数值必须是编译时常量

时间:2015-10-07 08:20:02

标签: c# .net

我想使用我的控制台应用程序登录MyBB论坛,但是我的代码出错了

  

' postData'的默认参数值必须是编译时常量

如果我将用户名和密码设置为常量字符串,我可以很容易地修复它,但是我不能使用Console.ReadLine();所以我必须硬编码用户名和密码,我认为这不是一个好主意。

这是我的代码:

<div ng-repeat="order in itemorders">
<div class="order-lis-box border-radius">
    <div class="up line overflow-hidden text">
        <div class="fl black mb10">Order No. <span>{{ order.orderId }}</span><br><span class="capitalize grey F14 bold">Rs. {{ order.Total }}</span></div>
        <div class="custom-datetime text-right">{{ order.dateCreated }}</div>
    </div>
    .
    .
    .
</div> <!-- order-lis-box -->

2 个答案:

答案 0 :(得分:1)

为什么首先为它设置默认值?这不是函数的工作方式!

使用单独的参数并在函数内执行字符串连接。

public string MakePostRequest(string url, string Username, string Password, string ForumUrl)
{
    string postData = "username=" + Username + "&password=" + Password + "&remember=yes&submit=Login&action=do_login&url=" + ForumUrl + "member.php?action=login"
    ...
}

对于名称为泛型的方法为&#34; MakePostRequest&#34;拥有默认URL或默认POST数据听起来很奇怪。

说实话,我希望它只接受一个URL和POST数据的映射,然后由调用者传递该请求的正确数据。

答案 1 :(得分:0)

C#允许设置常量以外的默认值,因此您不能使用字段/其他参数。对于url,这是可以的,因为这是一个常数值。 <{1}}的串联字符串是不允许的。

选项是将默认值设置为postData,并在方法中检查它。 允许:

null