C#规范 允许你调用一个函数
void foo(params int[] x)
Run Code Online (Sandbox Code Playgroud)
零参数.但是,我没有在C#Lang中找到.规格.关于进一步行为的一个词 - 将foo获取空数组或空引用?我也检查了MSDN - 什么都没有.
行为定义在哪里?
注意:我不是在询问VS的行为,我在询问语言的设计.
在grails中,我有一个Controller,它需要一个通过POST发送的'options'参数,这个参数可以是一个集合,即'options = A&options = B&options = C'进入grails,这要归功于grails magic,因为options = Collection of值为['A','B','C']的字符串.问题是,当用户只选择一个选项时,参数变为字符串而不是字符串[](或列表),当执行options.each然后每个,通过groovy魔法,逐个字符地处理......我怎么能强迫选项是字符串[]或列表所以options.each正确应用?
类似于这个问题(appstore的iTunes链接中的"mt = 8"是什么?),我很好奇param uo的作用.在iDevices和浏览器上,我无法看到差异......
我正在使用带有Ruby 1.8.7的Sinatra.我是网络开发的新手,所以我并不完全理解获取和发布,但我得到了一些工作.接下来我需要知道的是如何在帖子中查询某些属性的params.在我的主文件中,我有这个代码:
get "/plan_design" do
erb :plan_design
end
post "/plan_design" do
# do stuff with params
end
Run Code Online (Sandbox Code Playgroud)
在plan_design.erb中,我有:
<% if (hash[paramTitle].kind_of?(String)) %>
<div> <input class="planDesignAsset" name="<%= paramTitle %>" value="<%= hash[paramTitle] %>" ></input> </div>
<% else %>
<div> <input class="planDesignAssetNum" name="<%= paramTitle %>" value="<%= hash[paramTitle] %>" ></input> </div>
<% end %>
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,我正在为非字符串使用不同的类.在post,我需要问一下params[some_key],你是哪种班级?然后我可以相应地对待每个参数.这有意义吗?
在extjs3.x中,我使用stores baseParamsconfig属性来指定用于加载存储的参数.
extjs中不再存在此属性4.我应该怎么做而不是这个?
同样在extjs3中,我能够通过使用代理配置属性来指定存储代理是a GET还是POST方法method.我应该怎么做而不是这个?
我的ExtJs 3代码 - >
var store = new Ext.data.JsonStore({
root: 'Data',
baseParams: {
StartDate: '',
EndDate: '''
},//baseParams
proxy: new Ext.data.HttpProxy({
url: 'Time/Timesheet',
method: 'POST'
})//proxy
});//new Ext.data.JsonStore
Run Code Online (Sandbox Code Playgroud) 给出以下方法:
static void ChangeArray(params string[] array) {
for (int i = 0; i < array.Length; i++)
array[i] = array[i] + "s";
}
Run Code Online (Sandbox Code Playgroud)
如果我调用它传递一个字符串数组,这是有效的:
string[] array = {"Michael", "Jordan"} // will become {"Michaels", "Jordans"}
ChangeArray(array);
Run Code Online (Sandbox Code Playgroud)
但如果我使用字符串参数调用它将无法工作:
string Michael = "Michael";
string Jordan = "Jordan";
ChangeArray(Michael, Jordan); // This will NOT change the values of the variables
Run Code Online (Sandbox Code Playgroud)
我知道编译器会将Michael和Jordan包装在一个数组上,所以两种情况下结果不一样吗?
我知道params修饰符(将数组类型的一个参数转换为所谓的"参数数组")特别不是方法签名的一部分.现在考虑这个例子:
class Giraffid
{
public virtual void Eat(int[] leaves)
{
Console.WriteLine("G");
}
}
class Okapi : Giraffid
{
public override void Eat(params int[] leaves)
{
Console.WriteLine("O");
}
}
Run Code Online (Sandbox Code Playgroud)
编译时没有任何警告.然后说:
var okapi = new Okapi();
okapi.Eat(2, 4, 6); // will not compile!
Run Code Online (Sandbox Code Playgroud)
给出一个错误(No overload for method 'Eat' takes 3 arguments).
现在,我知道编译器会将params修改器转换为System.ParamArrayAttribute相关参数的应用程序.通常,将一个属性集合应用于虚方法的参数,然后在具有不同属性集的派生类中的重写方法中装饰"对应"参数是没有问题的.
然而,编译器选择params静默忽略我的关键字.相反,如果一个使它反过来,并且应用于params基类中的参数Giraffid,然后省略覆盖中的关键字Okapi,编译器选择用它来装饰两个方法System.ParamArrayAttribute.当然,我用IL DASM验证了这些东西.
我的问题:
这是记录在案的行为?我已经彻底搜索了C#语言规范,但没有发现任何提及.
我可以说至少Visual Studio开发环境对此感到困惑.当键入2, 4, 6在上述方法的调用,所述 …
jQuery.param()接受一组键值对,并将其转换为一个字符串,您可以将其用作HTML请求中的查询字符串.例如,
a = {
userid:1,
gender:male
}
Run Code Online (Sandbox Code Playgroud)
会转换成
userid=1&gender=male
Run Code Online (Sandbox Code Playgroud)
我正在尝试在Google Apps脚本中调用服务器端的外部API,这需要很长的查询字符串.我会使用jQuery param函数,但似乎没有简单的方法在Google的服务器端使用jQuery.
你能给我一些实现相同功能的简单javascript代码吗?
它的jQuery实现在这里,但我不想冒险跳过任何关键细节,只需复制它并删除处理'传统'的代码.
我有一个可变长度数组,我需要将其转换为函数的参数列表.
我希望有一个巧妙的方法 - 但我看不出如何.
我正在编写的代码将调用类中的方法 - 但我不知道方法的名称,也不知道它有多少参数.
我试过这个 - 但它不起作用:
$params = array(1 => "test", 2 => "test2", 3 => "test3");
ClassName::$func_name(implode($params, ","));
Run Code Online (Sandbox Code Playgroud)
以上将所有值都归为函数的第一个参数.而它应该使用3个参数值(test,test2,test3)调用该函数.
我需要的是这个:
ClassName::$func_name("test", "test2", "test3");
Run Code Online (Sandbox Code Playgroud)
任何想法如何做到这一点整洁?
我试图在我的Rails日志中获取更多信息,特别是请求的URI或当前参数(如果可用)(我感谢他们并不总是这样).但是我似乎无法做到.这是我到目前为止所做的:
#config/environments/production.rb
config.logger = Logger.new(config.log_path)
config.log_level = :error
config.logger.level = Logger::ERROR
#config/environment.rb
class Logger
def format_message(level, time, progname, msg)
"**********************************************************************\n#{level} #{time.to_s(:db)} -- #{msg}\n"
end
end
Run Code Online (Sandbox Code Playgroud)
所以我可以自定义消息,但我似乎无法在这里访问params/request变量.有谁知道这是否可能,如果是这样的话怎么样?或者,如果有更好的方法来获取此信息?(甚至可能是Redis的基础?)
谢谢你,
担