小编Sid*_*Sid的帖子

本地功能与Lambda C#7.0

我正在研究C#7.0中的新实现,我觉得有趣的是他们已经实现了本地函数,但我无法想象一个局部函数比lambda表达式更受欢迎的场景,两者之间有什么区别.

我知道lambdas是anonymous函数,而局部函数却没有,但我无法弄清楚一个真实世界的场景,其中局部函数优于lambda表达式

任何例子都将非常感激.谢谢.

c# lambda function c#-7.0

161
推荐指数
4
解决办法
2万
查看次数

您需要在此活动中使用Theme.AppCompat主题(或后代).更改为Theme.AppCompat会导致其他错误

我在我的应用程序中使用appcompat v22.1.0并使用工具栏.我用的时候一切都很好Theme.AppCompat.Light.NoActionBar.当我开始实现时AlertDialog,它会产生如下错误:

java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
        at android.support.v7.app.AppCompatDelegateImplBase.onCreate(AppCompatDelegateImplBase.java:113)
        at android.support.v7.app.AppCompatDelegateImplV7.onCreate(AppCompatDelegateImplV7.java:146)
        at android.support.v7.app.AppCompatDialog.<init>(AppCompatDialog.java:47)
        at android.support.v7.app.AlertDialog.<init>(AlertDialog.java:92)
        at android.support.v7.app.AlertDialog$Builder.create(AlertDialog.java:882)
        at com.ramabmtr.map.findingmoo.MainActivity.onOptionsItemSelected(MainActivity.java:216)
        at android.app.Activity.onMenuItemSelected(Activity.java:2572)
        at android.support.v4.app.FragmentActivity.onMenuItemSelected(FragmentActivity.java:353)
        at android.support.v7.app.AppCompatActivity.onMenuItemSelected(AppCompatActivity.java:144)
        at android.support.v7.internal.view.WindowCallbackWrapper.onMenuItemSelected(WindowCallbackWrapper.java:99)
        at android.support.v7.internal.view.WindowCallbackWrapper.onMenuItemSelected(WindowCallbackWrapper.java:99)
        at android.support.v7.internal.app.ToolbarActionBar$2.onMenuItemClick(ToolbarActionBar.java:74)
        at android.support.v7.widget.Toolbar$1.onMenuItemClick(Toolbar.java:164)
        at android.support.v7.widget.ActionMenuView$MenuBuilderCallback.onMenuItemSelected(ActionMenuView.java:740)
        at android.support.v7.internal.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:802)
        at android.support.v7.internal.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:153)
        at android.support.v7.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:949)
        at android.support.v7.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:939)
        at android.support.v7.widget.ActionMenuView.invokeItem(ActionMenuView.java:598)
        at android.support.v7.internal.view.menu.ActionMenuItemView.onClick(ActionMenuItemView.java:139)
        at android.view.View.performClick(View.java:4084)
        at android.view.View$PerformClick.run(View.java:16989)
        at android.os.Handler.handleCallback(Handler.java:615)
        at android.os.Handler.dispatchMessage(Handler.java:92)
        at android.os.Looper.loop(Looper.java:137)
        at android.app.ActivityThread.main(ActivityThread.java:4812)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:511)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:792)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:559) …
Run Code Online (Sandbox Code Playgroud)

android android-appcompat

59
推荐指数
7
解决办法
9万
查看次数

列表理解在 Python 中到底是如何工作的?

我正在浏览 Python 3.X 的文档,我对列表理解的执行速度及其具体工作原理有疑问。

让我们看下面的例子:

清单 1

...
L = range(0,10)
L = [x ** 2 for x in L]
...
Run Code Online (Sandbox Code Playgroud)

现在据我所知,这会返回一个新列表,相当于写下

清单 2

...
res = []
for x in L:
  res.append(x ** 2)
...
Run Code Online (Sandbox Code Playgroud)

如果我是正确的话,主要区别在于执行速度。清单 1 应该在解释器内以 C 语言速度执行,而清单 2 则不然。

但清单 2 是列表理解在内部执行的操作(不确定),那么为什么清单 1 在解释器内以 C 速度执行,而清单 2 则不是?两者在处理之前都转换为字节码,还是我遗漏了一些东西?

python list-comprehension

3
推荐指数
1
解决办法
1771
查看次数

避免来自ASP.NET中的View的双重请求的最佳做法

我有以下控制器:

[HttpPost]
public ActionResult SomeMethod(string foo, obj bar)
{
  //Some Logic 
}
Run Code Online (Sandbox Code Playgroud)

现在假设从一个Button或Ajax(带有一些编辑)调用Action,我不想收到双重请求.

服务器端处理它的最佳方法是什么?


更新

您首先必须定义符合双重请求标准的时间间隔 - Jonesopolis

让我们假设在这种情况下,双重请求是指第一次和第二次呼叫之间的时间差小于1s

c# asp.net asp.net-mvc

2
推荐指数
1
解决办法
2136
查看次数

检查数字是否在给定范围内的有效方法

考虑以下场景:

  • 我有 2 个常量MAX & MIN

  • 我得到一个新号码x

现在检查 x 是否在给定的愤怒中,我会做这样的事情:

if(x >= MIN && X <= MAX)
{
   //Some logic
}
Run Code Online (Sandbox Code Playgroud)

我想知道是否有更好的方法来谈论效率。我确实知道这是一项非常简单的任务,但我只是想知道是否有更好的方法

c# algorithm

1
推荐指数
1
解决办法
5452
查看次数