小编Aᴄʜ*_*ᴀɪʟ的帖子

File_adLines上的IEnumerable.Take(0)似乎没有处理/关闭File句柄

我有一个函数,它使用with 和combination 来跳过n代码y行并从给定文件中获取行.当我尝试打开下次给出的文件时:File.ReadLinesSkipTakefilePath

string[] Lines = File.ReadLines(filePath).Skip(0).Take(0).ToArray();
using (StreamWriter streamWriter = new StreamWriter(filePath))
{
    // ...
}
Run Code Online (Sandbox Code Playgroud)

File in use by another process在" using"行上有一个例外.

它看起来像是IEnumerable.Take(0)罪魁祸首,因为它返回一个空IEnumerable而不枚举返回的对象File.ReadLines(),我相信它不会处理文件.

我对吗?他们不应该列举以避免这种错误吗?怎么做得好?

c#

27
推荐指数
2
解决办法
1527
查看次数

未公开/错误的HTML标记扩展到其父级之外

当HTML标签没有关闭时,我遇到了一些有趣的功能.有时浏览器会插入额外的开始和结束标记以进行补偿,有时它只会插入结束标记.最好通过示例解释:

随着<sup>标签:

first text node
<div> This is a parent div <sup>superscript tag starts IN parent</div> text OUTSIDE node of parent
Run Code Online (Sandbox Code Playgroud)

随着<s>标签:

first text node
<div> This is a parent div <s>strikethrough tag starts IN parent</div> text OUTSIDE node of parent
Run Code Online (Sandbox Code Playgroud)

正如您在第一个示例中所看到的,浏览器会<sup>在其父关闭之前自动关闭标记.然而,在第二个例子中的浏览器似乎关闭<s>其父结束前标记,然后插入 另一 起点<s>父后.

我已经查看<s><sup>规范 - 我似乎无法找到任何特定于浏览器如何解释和处理未闭合标签的内容.至少没有任何解释此功能的内容.

我想知道这个的原因是我正在使用的实时降价解析器 - 用户可能无法在解析其源代码之前完成其标记.

我想知道浏览器如何处理这些事情,所以我可以为这个用例编写代码.目前,浏览器以不同的方式处理关闭不同的标签(正如您的示例所示).

有谁知道为什么浏览器会这样做?或者至少知道一系列相同的元素?

html html5 html-parsing

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

regexp\k <name + 0>中的"+0"是什么意思?

我是Ruby中的正则表达式的新手,我似乎无法找到任何有关其\k<name+0>含义的可靠文档.这+0是我没有得到的部分.

这是一个例子 - 这个Regexp匹配回文:

\A(?<p>(?:(?<l>\w)\g<p>\k<l+0>|\w))\z
Run Code Online (Sandbox Code Playgroud)

当我删除了+0\k<l+0>它不再正确地匹配.
我的测试:

>> /\A(?<p>(?:(?<l>\w)\g<p>\k<l+0>|\w))\z/.match "aabbcdcbbaa" 
#=> #<MatchData "aabbcdcbbaa" p:"aabbcdcbbaa" l:"c">

>> /\A(?<p>(?:(?<l>\w)\g<p>\k<l>|\w))\z/.match "aabbcdcbbaa" 
#=> nil
Run Code Online (Sandbox Code Playgroud)

我所做的就是删除+0.我还没有找到任何文件或这方面的例子,有人能指出我正确的方向吗?

ruby regex backreference named-captures

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

通过键盘快捷键电子应用禁用重新加载

我想Command+R在电子应用程序中实现绑定到键盘快捷键的自定义操作.

我克隆了electron-quick-startrepo,并将main.js文件更改为:

const { app, Menu, MenuItem, BrowserWindow } = require('electron')

let mainWindow

let template = [
  { label: app.getName(), submenu: [
    { label: 'custom action 1', accelerator: 'Command+R',       click() { console.log('go!') } },
    { label: 'custom action 2', accelerator: 'Shift+Command+R', click() { console.log('go!') } },
    { type: 'separator' },
    { role: 'quit' }
  ] }
]

const menu = Menu.buildFromTemplate(template)

function createWindow () {
  mainWindow = new BrowserWindow({width: 800, height: 600})
  mainWindow.loadURL(`file://${__dirname}/index.html`)
  mainWindow.webContents.openDevTools() …
Run Code Online (Sandbox Code Playgroud)

keyboard-shortcuts reload menuitem node.js electron

8
推荐指数
2
解决办法
1905
查看次数

iOS通知触发器:每两周和/或每季度

我似乎无法找到任何Apple文档用于这个确切的场景,我已经尝试了各种方法来做到这一点,我一直空着.

我想安排重复通知(iOS 10+如此UNCalendarNotificationTrigger或等效).
这些是本地通知 而非推送通知.

我的目标:

安排重复的通知:

  • 一旦两周(例如每第二星期二)
  • 每季度一次(例如,每3个月中的第1次)

我目前的方法:

这些触发器运行良好,并且易于实现(在Swift Playground中运行代码).

// Every day at 12pm
var daily = DateComponents()
daily.hour = 12
let dailyTrigger = UNCalendarNotificationTrigger(dateMatching: daily, repeats: true)
dailyTrigger.nextTriggerDate() // "Jan 4, 2017, 12:00 PM"

// Every Tuesday at 12pm
var weekly = DateComponents()
weekly.hour = 12
weekly.weekday = 3
let weeklyTrigger = UNCalendarNotificationTrigger(dateMatching: weekly, repeats: true)
weeklyTrigger.nextTriggerDate() // "Jan 10, 2017, 12:00 PM"

// …
Run Code Online (Sandbox Code Playgroud)

notifications calendar ios swift

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

查找包含鼠标指针的显示器或屏幕 - swift、macos

我想找出鼠标在哪个显示器上,以便我可以在该显示器上创建一个窗口。

这与哪个是主屏幕不同,因为NSScreen.main返回其中包含活动窗口的哪个屏幕(一个简单的方法是判断哪个监视器的菜单栏是不透明的,其他的会稍微变暗)。

据我所知,没有直接的方法可以得到这个?

macos mouse multiple-monitors screen swift

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

对象不支持属性或方法"焦点"

我在tagsinput这个项目中使用我网站上的文本字段.

我正在尝试将焦点设置到文本字段,但它无法正常工作.它给了我以下错误:

Unhandled exception at line 37, column 9 in
LOCALDOMAIN-LINK-REMOVED
0x800a01b6 - JavaScript runtime error: Object doesn't support property or method 'focus'.
Run Code Online (Sandbox Code Playgroud)

line (37)这个错误指的是:

searchQueryTB.focus();
Run Code Online (Sandbox Code Playgroud)

我的完整代码是:

document.onload = FocusSearchQueryTextBox();

function FocusSearchQueryTextBox() {
    var searchQueryTB = document.getElementsByClassName("TBhandle0F7X");
    searchQueryTB.focus();
}
Run Code Online (Sandbox Code Playgroud)

标记:

<input type="text" value="" name="SearchQuery" id="tagsinput" class="TBhandle0F7X" />
Run Code Online (Sandbox Code Playgroud)

所以我假设它可能与文本字段实际上不合适的事实有关textfield,因为它是一个jQuery UI或tagsinput项目使用的东西?或许我错了,但到目前为止我还没有在谷歌上运气,并且在该项目的网站上似乎没有任何与此问题有关的内容.

我也在jQuery中试过这个,但正如预期的那样,它也没有用.同样的错误.

有什么错误或我如何解决这个问题的任何建议?

html javascript jquery dom

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

迭代ES6类的方法和属性

因此随着使用JavaScript的新框架的增长,许多人已经采用了ECMAScript 6 shim或TypeScript,并具有许多新功能.我的问题是:

如何迭代ES6类的方法/属性?

例如(有物体)

var obj = {
  prop: 'this is a property',
  something: 256,
  method: function() { console.log('you have invoked a method'); }
}

for (var key in obj) {
  console.log(key);
}

// => 'prop'
// => 'something'
// => 'method'
Run Code Online (Sandbox Code Playgroud)

(带课程)

class MyClass {
  constructor() {
    this.prop = 'prop';
    this.something = 256;
  }

  method() {
    console.log('you have invoked a method');
  }
}
Run Code Online (Sandbox Code Playgroud)

如何列出方法MyClass,以及可选的属性?

javascript loops ecmascript-6

5
推荐指数
2
解决办法
5337
查看次数

ionicPopup完成加载后运行代码/事件?

我有一个$ ionicPopup,其中包含一些交互式内容 - 但是,为了使用它,我必须使用一个简单的命令将其初始化:

myFactory.initialise(myElement)

有没有办法告诉弹出窗口是否已加载所以我可以触发此初始化?
是否存在某种ionicPopupLoaded事件?

例如:

var customPopup = $ionicPopup.show({
  title: 'Interactive Popup',
  cssClass: 'interactive-popup',
  template: '<div id="myElement"></div>',
  scope: $scope,
  buttons: [{
    text: 'Cancel',
    type: 'button-default',
    onTap: function(e) {
      return false;
    }
  },
  {
    text: 'Option',
    type: 'button-energized',
    onTap: function(e) {
      e.preventDefault();
      myFactory.functionA();
    }
  },
  {
    text: 'OK',
    type: 'button-balanced',
    onTap: function(e) {
      e.preventDefault();
      myFactory.functionB();
    }
  }]
});
Run Code Online (Sandbox Code Playgroud)

这是我的弹出窗口,一旦加载并显示,我想自动调用myFactory.initialise(myElement)以初始化我的内容..

一旦加载了弹出窗口,是否有某种运行代码的方法?

javascript events angularjs ionic-framework ionic

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