相当于托管 c++ 中的 C# null

发布于 2024-10-10 20:45:55 字数 522 浏览 2 评论 0原文

我有一个托管 C++ 对象,

bool Test::TestStringNumber(String^ testData)
{
   int len = testData->Length;
   if(len > 0) return true;
}

正在 C# 中使用相同的函数,

void Main()
{
    Test t = new Test()
    t.TestStringNumber(null);
}

但应用程序崩溃了。在调试过程中,我在 C++ 中观察到它是“未定义值”,

所以我尝试在 C++ 代码中使用 nullptr 测试 testData,并使用以下代码,但仍然发生相同的崩溃

if( testData == nullptr && String::IsNullOrEmpty( testData )) 

*一种方法是捕获 C++ 托管代码中的异常并返回;

i have one Managed C++ object

bool Test::TestStringNumber(String^ testData)
{
   int len = testData->Length;
   if(len > 0) return true;
}

am using same function in C#

void Main()
{
    Test t = new Test()
    t.TestStringNumber(null);
}

but application crash. during debugging i observed in C++ it comes as 'undefined value'

ALso i tried to test testData with nullptr in c++ code, and used following code, but still same crash

if( testData == nullptr && String::IsNullOrEmpty( testData )) 

*One way is to catch exception in C++ managed code and return ;

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

心的位置 2024-10-17 20:45:56
bool Test::TestStringNumber(String^ testData)
{
  return !String::IsNullOrEmpty( testData );
}

应该可以正常工作吗?我不明白你的代码中的要点吗?

bool Test::TestStringNumber(String^ testData)
{
  return !String::IsNullOrEmpty( testData );
}

Should work just fine? Not that I see the point in your code?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文