📄 compareconditionevaluator.cs
字号:
// <file>
// <copyright see="prj:///doc/copyright.txt"/>
// <license see="prj:///doc/license.txt"/>
// <owner name="Mike Krüger" email="mike@icsharpcode.net"/>
// <version>$Revision: 1048 $</version>
// </file>
using System;
using System.Collections;
namespace ICSharpCode.Core
{
/// <summary>
/// Compares two strings (case sensitive).
/// The strings are passed through the StringParser, so it is possible to compare
/// SharpDevelop properties.<br/>
/// Useful if you want to run a command only when a setting is active to prevent
/// loading your addin if that setting isn't set.
/// </summary>
/// <attribute name="string">
/// The first string.
/// </attribute>
/// <attribute name="equals">
/// The second string.
/// </attribute>
/// <attribute name="comparisonType">
/// The mode of the comparison: a field of the System.StringComparison enumeration. The default is
/// 'InvariantCultureIgnoreCase'.
/// </attribute>
/// <example title="Check the value of a property in the PropertyService">
/// <Condition name = "Compare" string = "${property:SharpDevelop.FiletypesRegisterStartup}" equals = "True">
/// </example>
public class CompareConditionEvaluator : IConditionEvaluator
{
public bool IsValid(object caller, Condition condition)
{
string comparisonTypeText = condition.Properties["comparisonType"];
StringComparison comparisonType;
if (string.IsNullOrEmpty(comparisonTypeText))
comparisonType = StringComparison.InvariantCultureIgnoreCase;
else
comparisonType = (StringComparison)Enum.Parse(typeof(StringComparison), comparisonTypeText);
return string.Equals(StringParser.Parse(condition.Properties["string"]),
StringParser.Parse(condition.Properties["equals"]),
comparisonType);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -