小编Ioa*_*nis的帖子

C#?:条件运算符

我有这个C#2.0源代码的摘录:

object valueFromDatabase;
decimal result;
valueFromDatabase = DBNull.Value;

result = (decimal)(valueFromDatabase != DBNull.Value ? valueFromDatabase : 0);
result = (valueFromDatabase != DBNull.Value ? (decimal)valueFromDatabase : (decimal)0);
Run Code Online (Sandbox Code Playgroud)

第一个结果评估抛出,InvalidCastException而第二个结果评估不抛出.这两者有什么区别?

.net c# conditional-operator c#-2.0

41
推荐指数
3
解决办法
2万
查看次数

Char*在C#中编组

我在Visual C++ DLL中有此功能

char * __stdcall GetMessage(int id) {
char buffer[250];
.
.
.
strcpy(buffer, entry); // entry is a char * that has allocated 250 chars
return (char *)buffer;
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用以下代码从C#导入此函数

[DllImport("mydll.dll", CharSet=CharSet.Ansi)]
public static extern string GetMessage(int id);
Run Code Online (Sandbox Code Playgroud)

我试图在MessageBox中呈现它,它总是在字符串的末尾有奇怪的符号.有什么建议如何克服这个问题?

c# c++ marshalling

2
推荐指数
1
解决办法
2578
查看次数

标签 统计

c# ×2

.net ×1

c#-2.0 ×1

c++ ×1

conditional-operator ×1

marshalling ×1