使用params关键字的方法示例是 String.Format("", foo, bar, baz)
但是我如何创建一个接受如下枚举数组的方法:
class MyClass
{
public enum Foo { Bar, Baz }
public static void MyMethod(params enum[] Foo) {}
public static void TestMethod()
{
MyMethod();
MyMethod(Foo.Bar);
MyMethod(Foo.Baz);
MyMethod(Foo.Bar, Foo.Baz);
}
}
Run Code Online (Sandbox Code Playgroud) 非常简单的问题:你如何编写一个link_to将所有现有的params传递给目标控制器动作?
我知道java中的数组扩展了对象,所以为什么将它们作为params传递不起作用.
public static void main(String[] args) {
foo(new Integer[]{1, 2, 3}); // 1
foo(new int[]{1,2,3}); //2
}
static void foo(Object... params) {
System.out.println(params[0]);
}
Run Code Online (Sandbox Code Playgroud)
此外,为什么它不将数组视为单个参数(第1行)
运行以上输出是:
1
[I@3e25a5
Run Code Online (Sandbox Code Playgroud) 我在服务中创建了一个View,它始终位于android中的每个应用程序之上.
最初,服务的行为是TYPE_SYSTEM_ALERT.
WindowManager.LayoutParams layparams = new WindowManager.LayoutParams(
WindowManager.LayoutParams.WRAP_CONTENT,WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.TYPE_SYSTEM_ALERT,
WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH,
PixelFormat.TRANSLUCENT);
layparams .gravity = Gravity.CENTER_VERTICAL| Gravity.CENTER_HORIZONTAL;
wm = (WindowManager) getSystemService(WINDOW_SERVICE);
wm.addView(serviceView, layparams );
Run Code Online (Sandbox Code Playgroud)
我在运行时更改服务的行为意味着在触摸时在TYPE_SYSTEM_ALERT和TYPE_SYSTEM_OVERLAY之间切换.当我在视图参数外部触摸时以及在视图参数内触摸时,会发生切换.
layparams .type = WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY;
Using updateViewLayout(serviceView, layparams )
Run Code Online (Sandbox Code Playgroud)
问题:当我在视图外触摸时,第一次触摸只是激活TYPE_SYSTEM_OVERLAY然后外部app工作正常.当TYPE_SYSTEM_OVERLAY工作时,在此之后触摸视图时,它将触发视图后面的对象操作而不是视图的操作.但是当你触摸视图时,将应用TYPE_SYSTEM_ALERT,现在View将正常运行.
当前实现:当在布局参数之间进行切换时,我必须触摸两次来处理特定的事情.
这些params来自erb模板中的html输入(这段代码在主要内容中application.rb),我在检查它们是否在我添加它们之前被填充n.requestusers,这将成为数据库条目的一部分.它有效,但感觉就像现在的bash脚本一样.写这样的东西最好的方法是什么?
主.rb中的路线
if params[:user2].empty? && params[:user3].empty? && params[:user4].empty? && params[:user5].empty?
n.requestusers = params[:user1]
elsif params[:user3].empty? && params[:user4].empty? && params[:user5].empty?
n.requestusers = params[:user1], params[:user2]
elsif params[:user4].empty? && params[:user5].empty?
n.requestusers = params[:user1], params[:user2], params[:user3]
elsif params[:user5].empty?
n.requestusers = params[:user1], params[:user2], params[:user3], params[:user4]
else
n.requestusers = params[:user1], params[:user2], params[:user3], params[:user4], params[:user5]
end
Run Code Online (Sandbox Code Playgroud) 是否有可能在C#中接受一个params参数,然后将其作为params列表传递给另一个函数?如上所述,如果我没有弄错的话,下面的函数将args作为一个类型数组的单个参数传递object.这里的目标是不言而喻的.
//ScriptEngine
public object[] Call(string fnName, params object[] args)
{
try{
return lua.GetFunction(fnName).Call(args);
}
catch (Exception ex)
{
Util.Log(LogManager.LogLevel.Error, "Call to Lua failed: "+ex.Message);
}
return null;
}
Run Code Online (Sandbox Code Playgroud)
这lua.GetFunction(fnName).Call(args);是对我的代码之外的调用,它接受param object[].
在特定的控制器中,我有下面的参数列表:
Parameters: {"user"=>"{\"id\":32,\"email\":\"test@test.com\",\"created_at\":\"2014-04-10T13:13:40.000Z\",\"updated_at\":\"2014-04-11T18:10:15.000Z\"}"}
Run Code Online (Sandbox Code Playgroud)
例如,我如何获得电子邮件的价值?
快速问题,是否可以在下面的阶段从$ routeProvider获得一个参数?
app.config(['$routeProvider', '$locationProvider', function($routeProvider, $locationProvider) {
$routeProvider
.when('/', {
templateUrl: 'views/home.html',
controller: 'IndexController'
})
.when('/students/:id', {
templateUrl: 'views/studentRecord.html',
controller: 'StudentsController',
resolve: {
students: function(getStudents) {
return getStudents.getAllStudents();
},
movies: function(getStudents,$stateParams) {
return getStudents.getStudentbyId($stateParams.id);
}
}
});
$locationProvider.html5Mode(true);
Run Code Online (Sandbox Code Playgroud)
}]);
所以,我有'getStudentbyId(5)'理想情况下,我想得到:id值字段.经过大量的谷歌搜索后我找不到办法.有任何想法吗?
干杯
编辑:当我在我的app.config中注入$ stateParams时,我得到'(匿名函数)angular.js:78'与我使用$ params时相同...例如.
app.config(['$routeProvider', '$locationProvider', '$stateParams', function($routeProvider, $locationProvider, $stateParams) {
Run Code Online (Sandbox Code Playgroud) 我有以下代码创建一个匿名类型的实例,该方法作为唯一成员:
var test = new {
f = new Func<int, int>(x => x)
};
Run Code Online (Sandbox Code Playgroud)
我想实现一个函数,它总结了所有参数,无论传递了多少参数.这是常规方法的样子:
int Sum(params int[] values) {
int res = 0;
foreach(var i in values) res += i;
return res;
}
Run Code Online (Sandbox Code Playgroud)
但是,我不知道这是否适用于匿名方法.我试过了Func<params int[], int>,但显然不会编译.有没有办法用变量参数列表编写匿名方法,或者至少使用可选的args?
编辑:我想要实现的是调用这样的(匿名)求和方法:test.Sum(1, 2, 3, 4).
我有一个嵌入式的Google mymaps。似乎zoom参数根本不起作用。我在Google文档中找不到任何有用的信息。
Mymaps似乎不遵循标准的iframe Maps API。
<iframe src="https://www.google.com/maps/d/embed?mid=1gatxEY51NXkSRl461HgAxmk2bwI" width="640" height="480"></iframe>
Run Code Online (Sandbox Code Playgroud)
编辑:
在Matej接受的答案之后,我找到了两个有用的链接:
我应该在Google Maps URL中使用哪些参数来进行定位?
https://moz.com/ugc/everything-you-never-wanted-to-know-about-google-maps-parameters
然后像这样修改我的嵌入代码,以便添加缩放(通过“ z”参数)和居中(通过“ ll”参数):
<iframe src="https://www.google.com/maps/d/embed?mid=1gatxEY51NXkSRl461HgAxmk2bwI&z=5&ll=43.7695600,11.2558140" width="640" height="480"></iframe>
Run Code Online (Sandbox Code Playgroud)
顺便说一句:我通常喜欢在这个网站上找到我的经/纬度位置: