我正在MSDN上阅读c ++的foreach语法:
// for_each_string1.cpp
// compile with: /ZW
#include <stdio.h>
using namespace Platform;
ref struct MyClass {
property String^ MyStringProperty;
};
int main() {
String^ MyString = ref new String("abcd");
for each ( char c in MyString )
wprintf("%c", c);
wprintf("/n");
MyClass^ x = ref new MyClass();
x->MyStringProperty = "Testing";
for each( char c in x->MyStringProperty )
wprintf("%c", c);
}
我试图找到&#34; ^&#34;谷歌上的意思,但我找不到任何东西(或我的查询不正确)
这是什么意思?它是&#34; *&#34;?它是&#34;&amp;&#34;?
此语法也适用于C#。他们在两种语言中的含义是否相同?
一块C#code:
using namespace System;
int main(){
array<int>^ arr = gcnew array<int>{0,1,2,5,7,8,11};
int even=0, odd=0;
for each (int i in arr) {
if (i%2 == 0)
even++;
else
odd++;
}
Console::WriteLine(“Found {0} Odd Numbers, and {1} Even Numbers.”,
odd, even);
}
答案 0 :(得分:1)
&#34; ^&#34;表示托管引用,用于托管类型。它就像一个指针,但对于托管类型。语法不存在于C#中。在C#中,等价物只是引用类型的变量(与值类型相对)或盒装值类型。
正如其他人所说,这是C ++ / CLI语法,这意味着你必须使用/ clr选项进行编译。 C ++ / CLI基本上是C ++,具有C#(或更一般地说,.NET)的特性。
答案 1 :(得分:0)
https://docs.microsoft.com/en-us/cpp/extensions/handle-to-object-operator-hat-cpp-component-extensions?view=vs-2019希望该链接可以为您提供帮助。 btw,^是一个特殊字符,被Google搜索引擎忽略,因此您无法搜索该字符。