我怎样才能使c++中的函数像c#中的属性一样?
How can i make that the function in c++ will be like a property in C#?
我在c++中有这个函数:
List<String^> ^GetCodecs()
{
List<String^> ^l = gcnew List<String^>;
String ^s;
for (int i=0;i<3333;i++)
{
s = gcnew String(Encoder_GetCodecName( i ));
l->Add(s);
}
return l;
}
这是在c#中,我得到列表:
List<string> l = new List<string>(f.GetCodecs());
所以我包含3333个索引,其中一些是编解码器的名称。
我现在想做的是,在c#中,而不是这样做:List l = new List(f.t getcodecs ());
以某种方式使我能够做例如:
f.GetCodecs .
当我点击GetCodecs之后的点时,它会打开一个新的大的编解码器列表,我可以用箭头上下移动,然后选择我想要的。
比如属性之类的。它现在不像List了
编辑!
的例子:
我在做。getcodecs。
在最后一点之后,我将看到这样的编解码器:
mpejxviddivx
我将立即看到它们,而不需要循环。
我想你在问什么:
当我在c++编辑器中输入
f.GetCodecs.
时,我希望IDE中的在此之后显示编解码器列表,以便我可以从中选择项目一个列表,而不是必须输入f.GetCodecs.mpegCodec
。
如果这是你想要的,那么你需要GetCodecs是(或者返回,如果它是一个方法)一个对象,其字段/方法的名称是你想要的。在设计对象时,您必须选择出现的名称,例如,它不会基于机器上安装的编解码器。
如果我正确地解释了你的问题,那么CodeProject上有一篇很好的文章向你展示了如何做到这一点:c++/CLI Properties - accessor方法的语法糖
你需要显式地使它成为一个属性:
property List<String^> ^GetCodecs
{
List<String^>^ get()
{
List<String^> ^l = gcnew List<String^>;
String ^s;
for (int i=0;i<3333;i++)
{
s = gcnew String(Encoder_GetCodecName( i ));
l->Add(s);
}
return l;
}
}
我没有准备好编译器,所以我不能测试这段代码,但是你明白了。
相关文章:
- 如何导出包含具有"std::unique_ptr"值的"std::map"属性的
- C++概念:如何使用'concept'检查模板化结构的属性?
- 子目录是否继承属性,例如add_definitions,include_directories和父Cmakelist.t
- 通过指向指针数组的指针访问子类的属性
- MSVC是否支持C++11样式的属性而不是__declspec
- QML:修改在不同QML文件(而非main.QML)中定义的子对象的属性
- 类的C++属性似乎已重新初始化
- Qt Quick-如何仅从c++代码与qml属性交互
- 用概念检查属性的类型
- C++如何将同一类的实例作为属性
- 如何将不同的可执行文件合并到一个窗口框架中进行编码?像浏览器一样
- 为什么在C++中对链表这样做?(像堆叠一样处理它们)
- 按多个属性排序
- 主函数参数的属性
- "perf_event_attr"结构的"read_format"属性的选项到底是什么?
- C++删除未使用的类属性会导致 std::logic_error
- 如何在 C++ 中使类属性类型与在 C# 中一样
- 我怎样才能使c++中的函数像c#中的属性一样?
- 如何在c++中动态调用属性名,就像JS中的方括号符号一样
- java注释与c#属性是一样的吗?在c++中等效的是什么?