C#6有一个名为"异常过滤"的新功能
语法是这样的:
catch (Win32Exception exception) when (exception.NativeErrorCode == 0x00042)
{
//Do something here
}
Run Code Online (Sandbox Code Playgroud)
我不禁想知道当前的方法有什么好处:
catch (Win32Exception exception)
{
if (exception.NativeErrorCode == 0x00042)
{
//Do something here
}
}
Run Code Online (Sandbox Code Playgroud)
在大括号之前进行过滤是一件大事吗?也许与性能或安全性有关?
我正在阅读关于SO的许多问题,关于以像素检测屏幕尺寸的最佳方法,这最终取决于找到实际屏幕尺寸的分辨率.
我知道一些移动设备有小屏幕(比如4英寸)但分辨率很高.虽然有些设备有大屏幕(比如7英寸标签),但分辨率很低.
因此,当您想要向用户显示您的页面时,您确实需要以英寸或厘米为单位的屏幕尺寸,以提供舒适眼睛的最佳视图.
所以我问:有没有找到设备的屏幕尺寸,而不是像素?我知道它可以,只要我们知道决议!我们可以根据屏幕宽度和高度来计算尺寸
欣赏任何想法!
我正在阅读微软的用户身份,并试图在我的MVC5应用程序中应用它们.
据我所知,Id是关键,而userName不是键,定义说它可以为null,所以我问自己......为什么在MVC5项目模板中,当你输入一个已经存在的userName时你会收到错误信息??
我试图达到userName验证,但我不能.
这是数据库定义:
CREATE TABLE [dbo].[AspNetUsers] (
[Id] NVARCHAR (128) NOT NULL,
[UserName] NVARCHAR (MAX) NULL,
Run Code Online (Sandbox Code Playgroud)
这里是IdentityUser定义,通知(无验证):
namespace Microsoft.AspNet.Identity.EntityFramework
{
public class IdentityUser : IUser
{
public IdentityUser();
public IdentityUser(string userName);
public virtual ICollection<IdentityUserClaim> Claims { get; }
public virtual string Id { get; set; }
public virtual ICollection<IdentityUserLogin> Logins { get; }
public virtual string PasswordHash { get; set; }
public virtual ICollection<IdentityUserRole> Roles { get; }
public virtual string SecurityStamp { get; set; }
public virtual string …Run Code Online (Sandbox Code Playgroud) 对于那些来自C#等语言的人,我可以声称'this'关键字是Javascript中最令人困惑的部分.
我已经在互联网和StackOverflow上阅读了很多相关内容.喜欢这里和这里.
我知道'this'关键字将绑定到上下文.并且在构造函数中它将绑定到正在创建的对象,并且当没有直接上下文时,它将绑定到全局对象(即窗口)
我知道这一切,但是混乱还没有完全清除; 所以最好的理解方法是测试代码.
所以我决定编写一些小代码,我对这个this关键字有多复杂感到惊讶.
这是我测试的代码:
function sayHi(name){
var tt = name;
return {
ss: tt,
work: function(anotherName){
alert ("hiiiii " + anotherName);
}
};
}
//this method invocation has no effect at all right now
sayHi("John");
var hi2 = new sayHi("wallace");
hi2.work("May");
alert(hi2.ss);
Run Code Online (Sandbox Code Playgroud)
正如预期的那样,警报窗口将显示(Hiiiiii May)然后(华莱士).现在请注意,该行sayHi("John");根本没有效果.
现在,当我改变一件事时,混乱将开始(改变var tt => this.tt):
function sayHi(name){
//this is the ONLY change I did.
this.tt = name;
return {
ss: tt,
work: function(anotherName){
alert ("hiiiii " …Run Code Online (Sandbox Code Playgroud) 更新[2014年7月16日]:问题在技术上是不正确的.阅读答案以获取更多详细信息.
我试图在到达我的文本框之前捕获文本.我发现了以下事实:
KeyDown,KeyUp事件将告诉你什么virtualKey被按下而不是角色!!
CoreWindow.CharacterReceived将捕获该字符,但此
事件不是特定于TextBox的,它会
在到达textBox后告诉您该字符.
现在我的问题是:
任何人都可以告诉我如何在Windows Phone 8.1上捕获Swype键盘的事件?

请注意:
1-我试图在TextBox.Paste中捕获它但它失败了:(
2-事件textBox.textChanged()是不是我期待的BEC该事件火灾键盘完成后,该事件(框TextChanged)会发生火灾后keyDown,keyUp,CharacterReceived无论文本是如何输入.
我试图写下以下问题的完整详细答案: 为什么"Dispose"工作,而不是"使用(var db = new DataContext())"?
所以我设置了我的项目,包括:
部门和员工使用实体框架
所以我的行动方法是这样的:
public ActionResult Index()
{
IEnumerable<department> d;
using (var ctx = new ApplicationDbContext())
{
d = ctx.departments;
}
return View(d);
}
Run Code Online (Sandbox Code Playgroud)
很自然地会发现这会导致常见的错误:
The operation cannot be completed because the DbContext has been disposed
Run Code Online (Sandbox Code Playgroud)
当我想解决它时,我做了以下[强制加载而不是轻松加载]:
public ActionResult Index()
{
IEnumerable<department> d;
using (var ctx = new ApplicationDbContext())
{
d = ctx.departments.toList();
}
return View(d);
}
Run Code Online (Sandbox Code Playgroud)
所以我试图了解引擎盖下的内容并查看View()方法的返回类型.我达到了以下' 正确 '的假设:
1-在using语句中以延迟加载方式调用模型[d].
2-因此当模型[d]被发送到视图以生成页面时,DbContext已经被using语句的最后一个大括号括起来了.
3-我们通过以急切的加载方式将模型[d]发送到视图来解决这种情况.
然后我继续我的假设被证明是" 错误的 "如下:
4-因为View()方法返回的是ViewResult对象,它也是一个ActionResult ..然后我可以在using语句中生成这个对象,然后将它返回给用户.
所以我做了以下事情:
public ActionResult Index()
{
ActionResult myView; …Run Code Online (Sandbox Code Playgroud) 我试图理解JavaScript的OOP模型,所以我正在阅读这篇文章:https: //developer.mozilla.org/en-US/docs/Web/JavaScript/Introduction_to_Object-Oriented_JavaScript
以下代码很有趣:
function Person(gender) {
this.gender = gender;
alert('Person instantiated');
}
Person.prototype.gender = '';
var person1 = new Person('Male');
var person2 = new Person('Female');
//display the person1 gender
alert('person1 is a ' + person1.gender); // person1 is a Male
Run Code Online (Sandbox Code Playgroud)
有趣而且不清楚的是这一行:
Person.prototype.gender = '';
Run Code Online (Sandbox Code Playgroud)
我不明白所以我用该行测试了代码,没有它.
代码在两种情况下都能正常工作.
所以我的问题是:
为什么作者添加该行?
我正在按照教程建议检查对象是否为字符串而不是空,如下所示:
var s = "text here";
if ( s && s.charAt && s.charAt(0))
Run Code Online (Sandbox Code Playgroud)
据说如果s是字符串,那么它有一个方法charAt然后最后一个组件将检查字符串是否为空.
我尝试用其他可用的方法测试它,比如(typeof和instanceof)使用一些SO问题,这里和这里也是!!
所以我决定在Js Bin中测试它:jsbin代码如下:
var string1 = "text here";
var string2 = "";
alert("string1 is " + typeof string1);
alert("string2 is " + typeof string2);
//part1- this will succeed and show it is string
if(string1 && string1.charAt){
alert( "part1- string1 is string");
}else{
alert("part1- string1 is not string ");
}
//part2- this will show that it …Run Code Online (Sandbox Code Playgroud) 我在这里问了一个问题:如果互联网连接可用,则刷新页面,然后@Fabrizio Calderan 使用延迟对象实现提供了一个非常简洁的解决方案,如下所示:
setInterval(function() {
$.when(
$.ajax({
url : "/favicon.ico", /* or other resource */
type : "HEAD"
})
)
.done(function() {
location.reload();
});
}, 120000); /* 120000 ~> 2 minutes */
Run Code Online (Sandbox Code Playgroud)
我的问题是:
因为 ajax 调用将返回 jqXHR ;如果ajax调用失败怎么办?那么ajax的返回类型是什么?仍然是 jqXHR 或 UNDEFINED 或 NULL
并且由于ajax的调用将返回jqXHR,它是一个延迟对象;我可以得出以下结论吗:
延迟对象已解析 ==> jqXHR
或被拒绝==>未定义
问候
即时通讯windows phone 8.1应用程序.在文本框中,我想阻止用户仅输入任何非数字字母[0-9].
所以这是我的代码:
private void NumKeyDown(object sender, KeyRoutedEventArgs e)
{
bool isNumber = (e.Key == Windows.System.VirtualKey.Number0 ||
e.Key == VirtualKey.Number1 ||
e.Key == VirtualKey.Number2 ||
e.Key == VirtualKey.Number3 ||
e.Key == VirtualKey.Number4 ||
e.Key == VirtualKey.Number5 ||
e.Key == VirtualKey.Number6 ||
e.Key == VirtualKey.Number7 ||
e.Key == VirtualKey.Number8 ||
e.Key == VirtualKey.Number9 ||
e.Key == VirtualKey.Back);
CoreVirtualKeyStates shiftState = Window.Current.CoreWindow.GetKeyState(VirtualKey.Shift);
bool shiftIsNotDown = true;
if ((shiftState & CoreVirtualKeyStates.Down) == CoreVirtualKeyStates.Down)
shiftIsNotDown = false;
e.Handled = !(isNumber && shiftIsNotDown);
} …Run Code Online (Sandbox Code Playgroud) 我有一个关于在vscode上调试python脚本的简单问题。
当我在包含多个子目录的vs代码上打开父目录时,然后从这些子目录中打开多个python文件。
然后,我尝试调试这些文件。
问题是,从launch.json将cwd设置为父文件夹。但是我现在在子文件夹中运行脚本。然后从子文件夹跳到子文件夹。
因此,时不时更改“ cwd”:“ workspaceRoot”对我来说不切实际
有没有一种方法,调试器将始终使用调试脚本文件的当前文件夹作为当前目录?
PS这个问题没有帮助我stackoverfollow问题
我有一个网页,我希望它每2分钟刷新一次,使用以下代码:
location.reload();
Run Code Online (Sandbox Code Playgroud)
问题是我假设用户已连接; 但如果发生了他/她没有在线连接,页面将失败并给出默认浏览器(没有连接错误页面); 并且除了用户手动之外,页面永远不会刷新
我可以包括ping机制来决定是否刷新天气?
我有一个 ObservableCollection<DateTime> myItems
并且有一些重复的项目需要删除
我尝试使用:
myItems = myItems.Distinct();
Run Code Online (Sandbox Code Playgroud)
但是我无法建立它并收到此错误:
错误1无法将类型'System.Collections.Generic.IEnumerable'隐式转换为'System.Collections.ObjectModel.ObservableCollection'。存在显式转换(您是否缺少演员表?)
当我检查ObservableCollection时,我发现它是IEnumerable<T>以下“转到定义”所示:
public class ObservableCollection<T> : Collection<T>, INotifyCollectionChanged, INotifyPropertyChanged
public class Collection<T> : IList<T>, ICollection<T>, IReadOnlyList<T>, IReadOnlyCollection<T>, IEnumerable<T>, IList, ICollection, IEnumerable
Run Code Online (Sandbox Code Playgroud)
所以我尝试投射如下:
myItems = (ObservableCollection<DateTime>) myItems.Distinct();
Run Code Online (Sandbox Code Playgroud)
它构建良好,没有错误;但在运行时会引发以下错误:
mscorlib.ni.dll中发生类型'System.InvalidCastException'的异常,但未在用户代码中处理。其他信息:无法转换类型'd__81
1[System.DateTime]' to type 'System.Collections.ObjectModel.ObservableCollection1 [System.DateTime]'的对象。
我还尝试了以下方法:
myItems = (ObservableCollection<DateTime>) myItems.Distinct().toList<DateTime>();
Run Code Online (Sandbox Code Playgroud)
但随后我再次看到以下编译时错误:
错误1无法将类型'System.Collections.Generic.List'转换为'System.Collections.ObjectModel.ObservableCollection'
我在这里想念什么?以及如何从ObservableCollection中删除重复项?
c# ×6
javascript ×6
jquery ×3
winrt-xaml ×2
ajax ×1
asp.net ×1
asp.net-mvc ×1
c#-6.0 ×1
character ×1
debugging ×1
exception ×1
getcwd ×1
instanceof ×1
keyboard ×1
lazy-loading ×1
linq ×1
oop ×1
page-refresh ×1
prototype ×1
python ×1
screen ×1
string ×1
this ×1
validation ×1