如何从c#转换vb中的struct?

如何从c#转换vb中的struct?,c#,vb.net,type-conversion,C#,Vb.net,Type Conversion,如何在vb中编写此代码 [StructLayout(LayoutKind.Sequential)] 公共结构点 { 公共int X; 公共智力; 公共静态隐式运算符点(点) { 返回新点(点X、点Y); } } 我已经试过了,但不起作用 _ 公共结构点 公共X作为整数 公共Y作为整数 公共共享加宽运算符CType(点对点)作为点 返回新点(点X、点Y) 终端操作员 端部结构 我有两个错误: Error 1 Conversion operators cannot convert fro

如何在vb中编写此代码

[StructLayout(LayoutKind.Sequential)]
公共结构点
{
公共int X;
公共智力;
公共静态隐式运算符点(点)
{
返回新点(点X、点Y);
}
}
我已经试过了,但不起作用

_
公共结构点
公共X作为整数
公共Y作为整数
公共共享加宽运算符CType(点对点)作为点
返回新点(点X、点Y)
终端操作员
端部结构
我有两个错误:

Error   1   Conversion operators cannot convert from a type to the same type.   
Error   2   Type 'MousePosition.Form1.POINT' has no constructors.   

是否可以在vb中继承自身结构?

注意,在vb中没有区分大小写的代码

所以点和点是同一类型的


例如,您必须将结构重命名为PointStruct。

您的代码基本正确,但存在名称空间冲突。该结构称为
POINT
,但在
System.Drawing
命名空间中已存在同名类型。在C#中,类型名称区分大小写,因此不存在冲突,但在VB.NET中,类型不区分大小写,因此它不知道您指的是哪一个。最简单的方法是将类重命名为其他对象,如下所示:


公共结构点
公共X作为整数
公共Y作为整数
公共共享加宽运算符CType(点作为ApiPoint)作为点
返回新点(点X、点Y)
终端操作员
端部结构
然而,如果你真的想,你可以用这个名字。每次需要区分这两个名称空间时,只需显式指定完整名称空间,例如:


公共结构点
公共X作为整数
公共Y作为整数
公共共享加宽运算符CType(点作为点)作为System.Drawing.point
返回新系统.Drawing.Point(点X,点Y)
终端操作员
端部结构

VB只对大小写不敏感一次,您必须为参数和类型指定不同的名称或不同的名称空间