在那篇《在C#中使用C++编写的类》中我介绍了如何在C#中使用C++编写的类。可是由于C#在用户界面设计、数据库存储和XML文件读取等方面的优势,有时候也会出现要在C++中使用C#编写的类的情况。下面就用一个完整的实例来说明怎样在C++中使用C#编写的类。
比如说,现在有一个用C#编写的DLL工程CsharpDll里面有一个Person类:
// Person.cs
using System;
namespace CsharpDll
{
public class Person
{
public Person()
{
Name = "No Name";
Sex = 'N';
Age = 0;
m_strLastError = "No Error";
}
public Person(string strName, char cSex, int iAge)
{
m_strLastError = "No Error";
Name = strName;
Sex = cSex;
Age = iAge;
}
public string Name
{
get
{
return m_strName;
}
set
{
if ((String.IsNullOrEmpty(value)) || (value.Length > 127))
{
m_strName = "No Name";
m_strLastError = "The length of the input name is out of range.";
return;
}
m_strName = value;
}
}
public char Sex
{
get
{
return m_cSex;
}
set
{
if ((value != 'F') && (value != 'M') && (value !