您可以通过执行“但是”来判断它将循环或应该循环多少次,
$loops = count($items);
但是只有当您的代码不以任何方式跳过迭代时,这才有效。
如果您使用字符类简写和 Unicode 识别正则表达式引擎,您就可以做到这一点。 \w
类匹配“单词字符”(字母、数字和下划线)。
请注意某些正则表达式风格不能很好地做到这一点:JavaScript 使用 ASCII 表示 \d
(数字)和 \w
,但使用 Unicode 表示 \s< /代码>(空格)。 XML 则相反。
您可能最适合定义一个数据模板选择器并创建多个数据模板。选择器可以评估各种逻辑规则,并返回您想要的模板。
这是一个非常好的入门关于 DataTemplateSelectors 的教程。
编辑
重读你的问题后,这就是我所得到的。
您的模型类是否具有访问父对象的导航属性?如果是这样,您可以在 ViewModel 上使用触发器(如果您使用 MVVM,则更佳)属性来根据父对象而不是父 TreeViewItem 启用/禁用/更改可见性。按照您描述的方式访问可视化树有点困难。
KeyboardEvent.KEY_DOWN
由焦点中的物体触发。空剪辑无法对焦。
适合您情况的可靠方法是订阅 stage。
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDown);
好吧,
我挖了很长时间,没能找到任何直接传递 CLI 参数的方法。
然而,有一个非常好的解决方法:
- 您需要一个类,它是 CLI 参数的解析器和持有者。就我而言,它是具有静态属性的静态类。当然,它在单元测试期间返回空值(无法识别的 CLI 参数)
您的 CLIArgsHolder 类必须以合理的方式编写,以返回空值,并且在初始化时如果缺少任何 CLI 参数,则不会抛出异常。就我而言,我仅在私有字段为 null 或为空时使用静态属性的 get 进行解析。
公共静态类 MyCLIArgsHandler { 私有字符串 mAppName = null; 私有字符串 mStationName = null; 公共字符串 StationName { 得到 { if(string.isNullOrEmpty(MyCLIArgsHandler.mStationName)) { //解析 CLI 参数 } 返回 MyCLIArgsHandler.mStationName; } } //... }
在开始实际测试之前,您可以将示例值注入到该类的字段中,以便:
<前><代码>[ClassInitialize()]
公共静态无效MyClassInitialize(TestContext testContext)
{
PrivateType 类型 = new PrivateType(typeof (MyCLIArgsHolder));
type.SetStaticFieldOrProperty("mAppName", "myTestAppName");
type.SetStaticFieldOrProperty("mStationName", "myTestStationName");
}
瞧!
现在,您的所有类都可以将 MyCLIArgsHolder 与您在测试类初始化中放入的值一起使用。
如果您不需要它是动态的,我会在资源中包含一个字符串数组,然后在即将查看 AutoCompleteTextView 时加载该数组。喜欢:
public class CountriesActivity extends Activity {
protected void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.countries);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_dropdown_item_1line, COUNTRIES);
AutoCompleteTextView textView = (AutoCompleteTextView)
findViewById(R.id.countries_list);
textView.setAdapter(adapter);
}
private static final String[] COUNTRIES = new String[] {
"Belgium", "France", "Italy", "Germany", "Spain"
};
}
可以在 http://developer.android.com/reference/ 上找到android/widget/AutoCompleteTextView.html
我已经做过几次的另一种允许它向用户学习的方法是使用 IE 的数据库连接和简单的光标。创建数据库时,您可以插入一些默认值。
这是使用简单光标适配器的示例: http ://androidcommunity.com/forums/f4/how-to-use-autocompletetextview-with-simplecursoradapter-15875/
编辑1:
在用户开始输入之前显示列表的一种想法是在 EditText 下面有一个简单的列表视图。不确定您是否可以调用 autocompletetextview 来显示建议,应该可以。也许您需要创建自己的 autocompletetextiew 类。
所以你知道你不能参数化表名,但你可以这样做,
cmd.CommandText = String.Format("SELECT {0} FROM [{1}] WHERE {2}={3}",
"ParentID",
sTable,
sWhere,
"?"
但是当且仅当 sTable 来自用户输入时,这才是危险的。如果您直接控制 sTable 则不必担心。
如果它确实来自用户输入,您将需要保护自己。最简单的方法是确保 sTable 是有效的表、附加表或查询名称。
为此,只需执行
SELECT Name FROM Myssobjects Where Type in (1,5,6,)
即可获取 sTable 的有效值列表。
根据您的应用程序,您可能可以执行一次并缓存结果,这样您就不必每次调用此方法时都执行此操作。
一般方法是仅选择您需要的列foo->db->tablename->select('all', where date = $date)
。
快速浏览一下 cakephp 和 symfony 等框架,它可能会帮助您更好地了解它通常是如何完成的。
Base
无法查看/访问/了解派生对象的任何部分,因此 sizeof
仅报告对其可见的对象部分。更重要的是,Base
方法中的 sizeof
无法知道存在或将会有子类(您可以子类化 Base
而无需重新编译毕竟),所以除了它所知道的部分之外,它无法报告任何内容。 (sizeof
是在编译时而不是运行时计算的。)
问题被标记为 C++,但每个人都在使用 C 字符串。以下是如何使用 C++ STL 字符串执行此操作
std::string s("DFF7DF");
int val;
std::istringstream iss(s);
iss >> std::setbase(16) >> val;
int result = val & 0xFFF; // take bottom 12 bits
if (val & 0x1000) // assume sign + magnitude encoding
result = - result;
(您的问题中的第二个“位摆弄”部分不清楚。如果您澄清的话,我将更新答案。)
是的,只需将所有命令放入一个文件中,然后
这将按顺序运行命令。如果您希望它们全部并行运行(即不等待命令完成),则将
&
添加到文件中每行的末尾Yep, just put all your commands in one file and then
This will run the commands in sequence. If you want them all to run in parallel (i.e. don't wait for commands to finish) then add an
&
to the end of each line in the file如何一次运行多个 Unix 命令?