本文整理汇总了C#中GalaSoft.MvvmLight.Helpers.WeakAction类的典型用法代码示例。如果您正苦于以下问题:C# WeakAction类的具体用法?C# WeakAction怎么用?C# WeakAction使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
WeakAction类属于GalaSoft.MvvmLight.Helpers命名空间,在下文中一共展示了WeakAction类的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: TestPublicNestedClassPublicNamedMethod
public void TestPublicNestedClassPublicNamedMethod()
{
Reset();
const int index = 99;
_itemPublic = new PublicNestedTestClass(index);
_action = _itemPublic.GetAction(WeakActionTestCase.PublicNamedMethod);
_reference = new WeakReference(_itemPublic);
Assert.IsTrue(_reference.IsAlive);
Assert.IsTrue(_action.IsAlive);
_action.Execute();
Assert.AreEqual(
PublicNestedTestClass.Expected + PublicNestedTestClass.Public + index,
PublicNestedTestClass.Result);
_itemPublic = null;
GC.Collect();
Assert.IsFalse(_reference.IsAlive);
}
示例2: TestPublicNestedClassInternalNamedMethod
public void TestPublicNestedClassInternalNamedMethod()
{
Reset();
const int index = 99;
_itemPublic = new PublicNestedTestClass(index);
_reference = new WeakReference(_itemPublic);
_action = _itemPublic.GetAction(WeakActionTestCase.InternalNamedMethod);
Assert.IsTrue(_reference.IsAlive);
Assert.IsTrue(_action.IsAlive);
_action.Execute();
Assert.AreEqual(
PublicNestedTestClass.Expected + PublicNestedTestClass.Internal + index,
PublicNestedTestClass.Result);
_itemPublic = null;
GC.Collect();
#if SILVERLIGHT
Assert.IsTrue(_reference.IsAlive); // Anonymous, private and internal methods cannot be GCed
_action = null;
GC.Collect();
Assert.IsFalse(_reference.IsAlive);
#else
Assert.IsFalse(_reference.IsAlive);
#endif
}
示例3: TestPublicClassPublicStaticMethod
public void TestPublicClassPublicStaticMethod()
{
Reset();
const string parameter = "My parameter";
_itemPublic = new PublicTestClass<string>();
_reference = new WeakReference(_itemPublic);
_action = _itemPublic.GetAction(WeakActionTestCase.PublicStaticMethod);
Assert.IsTrue(_reference.IsAlive);
Assert.IsTrue(_action.IsAlive);
_action.Execute(parameter);
Assert.AreEqual(
PublicTestClass<string>.Expected + PublicTestClass<string>.PublicStatic + parameter,
PublicTestClass<string>.Result);
_itemPublic = null;
GC.Collect();
Assert.IsFalse(_reference.IsAlive);
}
示例4: RelayCommand
/// <summary>
/// Initializes a new instance of the RelayCommand class.
/// </summary>
/// <param name="execute">The execution logic.</param>
/// <param name="canExecute">The execution status logic.</param>
/// <exception cref="ArgumentNullException">If the execute argument is null.</exception>
public RelayCommand(Action execute, Func<bool> canExecute)
{
if (execute == null)
{
throw new ArgumentNullException("execute");
}
_execute = new WeakAction(execute);
if (canExecute != null)
{
_canExecute = new WeakFunc<bool>(canExecute);
}
}
示例5: GetAction
public WeakAction GetAction(WeakActionTestCase testCase)
{
WeakAction action = null;
switch (testCase)
{
case WeakActionTestCase.PublicNamedMethod:
action = new WeakAction(
this,
DoStuffPublically);
break;
case WeakActionTestCase.InternalNamedMethod:
action = new WeakAction(
this,
DoStuffInternally);
break;
case WeakActionTestCase.PrivateNamedMethod:
action = new WeakAction(
this,
DoStuffPrivately);
break;
case WeakActionTestCase.PublicStaticMethod:
action = new WeakAction(
this,
DoStuffPublicallyAndStatically);
break;
case WeakActionTestCase.PrivateStaticMethod:
action = new WeakAction(
this,
DoStuffPrivatelyAndStatically);
break;
case WeakActionTestCase.AnonymousStaticMethod:
action = new WeakAction(
this,
() => Result = Expected);
break;
case WeakActionTestCase.AnonymousMethod:
action = new WeakAction(
this,
() => Result = Expected + _index);
break;
}
return action;
}
示例6: TestPublicClassPublicStaticMethod
public void TestPublicClassPublicStaticMethod()
{
Reset();
_itemPublic = new PublicTestClass();
_reference = new WeakReference(_itemPublic);
_action = _itemPublic.GetAction(WeakActionTestCase.PublicStaticMethod);
Assert.IsTrue(_reference.IsAlive);
Assert.IsTrue(_action.IsAlive);
_action.Execute();
Assert.AreEqual(
PublicTestClass.Expected + PublicTestClass.PublicStatic,
PublicTestClass.Result);
_itemPublic = null;
GC.Collect();
Assert.IsFalse(_reference.IsAlive);
}
示例7: TestPrivateNestedClassAnonymousStaticMethod
public void TestPrivateNestedClassAnonymousStaticMethod()
{
Reset();
_itemPrivate = new PrivateNestedTestClass();
_reference = new WeakReference(_itemPrivate);
_action = _itemPrivate.GetAction(WeakActionTestCase.AnonymousStaticMethod);
Assert.IsTrue(_reference.IsAlive);
Assert.IsTrue(_action.IsAlive);
_action.Execute();
Assert.AreEqual(
PrivateNestedTestClass.Expected,
PrivateNestedTestClass.Result);
_itemPrivate = null;
GC.Collect();
Assert.IsFalse(_reference.IsAlive);
}
示例8: TestInternalNestedClassPrivateStaticMethod
public void TestInternalNestedClassPrivateStaticMethod()
{
Reset();
_itemInternal = new InternalNestedTestClass();
_reference = new WeakReference(_itemInternal);
_action = _itemInternal.GetAction(WeakActionTestCase.PrivateStaticMethod);
Assert.IsTrue(_reference.IsAlive);
Assert.IsTrue(_action.IsAlive);
_action.Execute();
Assert.AreEqual(
InternalNestedTestClass.Expected + InternalNestedTestClass.PrivateStatic,
InternalNestedTestClass.Result);
_itemInternal = null;
GC.Collect();
Assert.IsFalse(_reference.IsAlive);
}
示例9: TestStaticMethodWithNonNullTarget
public void TestStaticMethodWithNonNullTarget()
{
Reset();
_common = new CommonTestClass();
_reference = new WeakReference(_common);
Assert.IsTrue(_reference.IsAlive);
var action = new WeakAction<string>(_common, DoStuffStatic);
Assert.IsTrue(action.IsAlive);
_common = null;
GC.Collect();
Assert.IsFalse(_reference.IsAlive);
Assert.IsFalse(action.IsAlive);
}
示例10: TestStaticMethodWithNullTarget
public void TestStaticMethodWithNullTarget()
{
Reset();
var action = new WeakAction<string>(null, DoStuffStatic);
Assert.IsTrue(action.IsAlive);
}
示例11: TestInternalClassAnonymousStaticMethod
public void TestInternalClassAnonymousStaticMethod()
{
Reset();
const string parameter = "My parameter";
_itemInternal = new InternalTestClass<string>();
_reference = new WeakReference(_itemInternal);
_action = _itemInternal.GetAction(WeakActionTestCase.AnonymousStaticMethod);
Assert.IsTrue(_reference.IsAlive);
Assert.IsTrue(_action.IsAlive);
_action.Execute(parameter);
Assert.AreEqual(
InternalTestClass<string>.Expected + parameter,
InternalTestClass<string>.Result);
_itemInternal = null;
GC.Collect();
Assert.IsFalse(_reference.IsAlive);
}
示例12: TestInternalClassAnonymousMethod
public void TestInternalClassAnonymousMethod()
{
Reset();
const int index = 99;
const string parameter = "My parameter";
_itemInternal = new InternalTestClass<string>(index);
_reference = new WeakReference(_itemInternal);
_action = _itemInternal.GetAction(WeakActionTestCase.AnonymousMethod);
Assert.IsTrue(_reference.IsAlive);
Assert.IsTrue(_action.IsAlive);
_action.Execute(parameter);
Assert.AreEqual(
InternalTestClass<string>.Expected + index + parameter,
InternalTestClass<string>.Result);
_itemInternal = null;
GC.Collect();
#if SILVERLIGHT
Assert.IsTrue(_reference.IsAlive); // Anonymous, private and internal methods cannot be GCed
_action = null;
GC.Collect();
Assert.IsFalse(_reference.IsAlive);
#else
Assert.IsFalse(_reference.IsAlive);
#endif
}
示例13: TestNonStaticMethodWithNullTarget
public void TestNonStaticMethodWithNullTarget()
{
Reset();
var action = new WeakAction(null, DoStuff);
Assert.IsFalse(action.IsAlive);
}