Это - псевдоним типа, не псевдоним пространства имен; полезно снять неоднозначность - например, против:
using WinformTimer = System.Windows.Forms.Timer;
using ThreadingTimer = System.Threading.Timer;
(PS: спасибо за выбор Timer
;-p)
Иначе, если бы Вы используете и System.Windows.Forms.Timer
и System.Timers.Timer
в том же файле, который необходимо было бы продолжать давать полным именам (так как Timer
могло сбивать с толку).
Это также играет роль с extern
псевдонимы для использования типов с тем же полностью определенным именем типа от различных блоков - редкий, но полезный, чтобы поддерживаться.
На самом деле, я вижу другое использование: когда Вы хотите быстрый доступ к типу, но не хотите использовать постоянного клиента using
, потому что Вы не можете импортировать некоторые конфликтующие дополнительные методы... немного замысловатые, но... вот пример...
namespace RealCode {
//using Foo; // can't use this - it breaks DoSomething
using Handy = Foo.Handy;
using Bar;
static class Program {
static void Main() {
Handy h = new Handy(); // prove available
string test = "abc";
test.DoSomething(); // prove available
}
}
}
namespace Foo {
static class TypeOne {
public static void DoSomething(this string value) { }
}
class Handy {}
}
namespace Bar {
static class TypeTwo {
public static void DoSomething(this string value) { }
}
}
Если вы говорите об удалении узлов из объекта jQuery, используйте функции filter
или , но не
. Подробнее см. Здесь .
Как использовать фильтр
:
var ps = $('p');
//Removes all elements from the set of matched elements that do
//not match the specified function.
ps = ps.filter(function() {
//return true to keep it, false to discard it
//the logic is up to you.
});
или
var ps = $('p');
//Removes all elements from the set of matched elements that
//do not match the specified expression(s).
ps = ps.filter('.selector');
Как использовать , а не
:
var ps = $('p');
//Removes elements matching the specified expression
//from the set of matched elements.
ps = ps.not('.selector');
Как уже отмечалось, $. Filter ()
- отличный вариант для фильтрации данных. Также обратите внимание, что объект jQuery может обрабатываться как массив , и поэтому вы можете использовать для него методы массива, такие как splice ()
.
var people = $(".people");
people.splice(2,1); // Remove 1 item starting from index 2
<ul>
<li class="1" />
<li class="2" />
<li class="3" />
<li class="4" />
<li class="5" />
</ul>
Фильтр выполняет итерацию по коллекции объектов jQuery. Для каждого из элементов: Верните true
внутри filter ()
, чтобы сохранить текущий элемент в коллекции объектов jQuery. Верните false
, чтобы удалить текущий объект из коллекции объектов jQuery.
$("li").filter(function ()
{
if (this.className == "1" || this.className == "2") return true;
return false;
});
В этом случае; анонимная функция, выполняемая filter ()
, вернет истину для элемента списка, который имеет класс 1 и / или 2 , удаляя последние три list-items из коллекции объектов jQuery.
Практический пример:
<ul>
<li class="1" />
<li class="2" />
<li class="3" />
<li class="4" />
<li class="5" />
</ul>
Этот фрагмент кода добавляет класс («синий») в неупорядоченный список. Затем выделяет первые два пункта списка. Затем прикрепляет обработчик кликов к первым двум элементам списка:
$(function ()
{
$("ul").addClass("blue").find("li").filter(function ()
{
if (this.className == "1" || this.className == "2") return true;
return false;
}).addClass("highlight").click(function ()
{
alert("I am highlighted!");
});
});