【问题标题】:C# use string in forC# 在 for 中使用字符串
【发布时间】:2020-03-20 18:44:56
【问题描述】:

微软的 c# 文档定义为:

for (initializer; condition; iterator)
    body

有没有办法将字符串用作初始化器、条件或迭代器?

如:

String ini = "int i = 0";
for(ini; condition; iterator){
   //do something
}

【问题讨论】:

  • 你试过了吗?阅读 C# 规范应该是可能的......即使它很奇怪:)
  • string n = "int i = 0";for (n; "i
  • 简答...不。我很好奇您的预期用例
  • 只是解释器,我想在 c# 中设计,以便将来将其重写为 Arduino c++
  • 答案是否定的……那你为什么还要呢?如果您认为代码只是一个字符串......所以只需阅读整个代码文件并按照您认为合适的方式解析它。我为各种目的生成代码文件。

标签: c#


【解决方案1】:

更新

你不能在 for 循环中使用像 "int i = 0" 这样的字符串,编译器无法读懂你的想法。

您可能需要重新考虑您的问题,或解析字符串以获得您需要的信息。


原创

有没有办法将字符串用作初始化器、条件或 迭代器?

for (string asd = ""; asd != string.Empty; asd += "b")

注意:我不确定我是否理解了这个问题,或者你的用例是什么,但你可以使用一个字符串以上。问题是你是否应该...

通常使用 for 来迭代指针:

for (char* p = pSomeValue; p < someAddress; p++)
    *p = '?'

【讨论】:

  • @rktech 它通过unsafe中的pointers遍历字符串的直接内存
【解决方案2】:

简单的答案是否定的。请通过 Microsoft 文档了解“for”循环

https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/for

但是如果初始化和条件是字符串格式的,你需要提取 值,你需要在 for 循环中赋值。

或者如果整个逻辑以字符串形式出现,请使用反射。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2017-04-13
  • 1970-01-01
  • 1970-01-01
  • 2020-09-17
  • 2022-01-03
  • 1970-01-01
  • 2014-02-17
  • 2014-08-12
相关资源
最近更新 更多