c# - 错误“)”预期,但无效的令牌“)”?
问题描述
就 C# 而言,我有点初学者,我真的不知道这里的错误是什么......
using System;
using System.Windows.Forms;
namespace Sancarn
{
public class Form1 : Form
{
public event EventHandler MessageHandler;
public Message lastMessage;
public string ptrToString(ptr As IntPtr)
{
return Marshal.PtrToStringAnsi(ptr);
}
[System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand, Name="FullTrust")]
protected override void WndProc(ref Message m){
EventHandler handler = MessageHandler;
lastMessage = m;
if(null != MessageHandler) MessageHandler(this,EventArgs.Empty);
base.WndProc(ref m);
}
}
}
当我尝试将其添加为 powershell 中的新类型时,出现以下错误:
Add-Type : c:\Users\sancarn\AppData\Local\Temp\vqezctgu.0.cs(11) : ) expected
c:\Users\sancarn\AppData\Local\Temp\vqezctgu.0.cs(10) :
c:\Users\sancarn\AppData\Local\Temp\vqezctgu.0.cs(11) : >>> public string ptrToString(ptr As IntPtr)
c:\Users\sancarn\AppData\Local\Temp\vqezctgu.0.cs(12) : {
I...
Add-Type : c:\Users\sancarn\AppData\Local\Temp\vqezctgu.0.cs(11) : Invalid token ')' in class, struct, or interface member declaration
c:\Users\sancarn\AppData\Local\Temp\vqezctgu.0.cs(10) :
c:\Users\sancarn\AppData\Local\Temp\vqezctgu.0.cs(11) : >>> public string ptrToString(ptr As IntPtr)
c:\Users\sancarn\AppData\Local\Temp\vqezctgu.0.cs(12) : {
...
Add-Type : c:\Users\sancarn\AppData\Local\Temp\vqezctgu.0.cs(13) : Invalid token '(' in class, struct, or interface member declaration
c:\Users\sancarn\AppData\Local\Temp\vqezctgu.0.cs(12) : {
c:\Users\sancarn\AppData\Local\Temp\vqezctgu.0.cs(13) : >>> return Marshal.PtrToStringAnsi(ptr);
c:\Users\sancarn\AppData\Local\Temp\vqezctgu.0.cs(14) : }
...
Add-Type : c:\Users\sancarn\AppData\Local\Temp\vqezctgu.0.cs(13) : Invalid token ')' in class, struct, or interface member declaration
c:\Users\sancarn\AppData\Local\Temp\vqezctgu.0.cs(12) : {
c:\Users\sancarn\AppData\Local\Temp\vqezctgu.0.cs(13) : >>> return Marshal.PtrToStringAnsi(ptr);
c:\Users\sancarn\AppData\Local\Temp\vqezctgu.0.cs(14) : }
...
Add-Type : c:\Users\sancarn\AppData\Local\Temp\vqezctgu.0.cs(17) : Expected class, delegate, enum, interface, or struct
c:\Users\sancarn\AppData\Local\Temp\vqezctgu.0.cs(16) : [System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand,
Name="FullTrust")]
c:\Users\sancarn\AppData\Local\Temp\vqezctgu.0.cs(17) : >>> protected override void WndProc(ref Message m){
c:\Users\sancarn\AppData\Local\Temp\vqezctgu.0.cs(18) : EventHandler handler = MessageHandler;
...
Add-Type : c:\Users\sancarn\AppData\Local\Temp\vqezctgu.0.cs(26) : Type or namespace definition, or end-of-file expected
c:\Users\sancarn\AppData\Local\Temp\vqezctgu.0.cs(25) : }
c:\Users\sancarn\AppData\Local\Temp\vqezctgu.0.cs(26) : >>> }
...
Add-Type : c:\Users\sancarn\AppData\Local\Temp\vqezctgu.0.cs(16) : The modifier 'override' is not valid for this item
c:\Users\sancarn\AppData\Local\Temp\vqezctgu.0.cs(15) :
c:\Users\sancarn\AppData\Local\Temp\vqezctgu.0.cs(16) : >>> [System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand,
Name="FullTrust")]
c:\Users\sancarn\AppData\Local\Temp\vqezctgu.0.cs(17) : protected override void WndProc(ref Message m){
...
所以我不确定这里发生了什么。从我的角度来看,所有括号都正确配对......我发现如果我注释掉ptrToString
声明,那么类编译得很好......所以这让我相信这个声明在某种程度上应该归咎于错误但是......要么我是瞎子,错过了一些大事,要么这句话没有错......?
public string ptrToString(ptr As IntPtr){
return Marshal.PtrToStringAnsi(ptr);
}
解决方案
在 C# 中,您不使用As
- 即 VB 声明方法参数。
这是固定代码:
using System;
using System.Windows.Forms;
namespace Sancarn {
public class Form1 : Form {
public event EventHandler MessageHandler;
public Message lastMessage;
public string ptrToString(System.IntPtr ptr) {
return Marshal.PtrToStringAnsi(ptr);
}
[System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand, Name = "FullTrust")]
protected override void WndProc(ref Message m) {
EventHandler handler = MessageHandler;
lastMessage = m;
if (null != MessageHandler) MessageHandler(this, EventArgs.Empty);
base.WndProc(ref m);
}
}
}
推荐阅读
- python - 正则表达式仅在函数上方获取一个 c 样式的多行注释
- python - 逐行迭代熊猫并以python方式修改特定的“单元格”
- python - PyTorch GPU 内存不足
- ruby-on-rails - Rails:使用 let 创建变量时外键约束失败!在 RSpec 测试中
- sql - WITH CTE 和大型 UNION 查询的替代方法
- javascript - JavaScript 问题:无法理解为什么我的代码不起作用
- c# - Unity 物体碰撞时什么都不会发生
- python - 如何计算一个月内天数的累积总和?使用 pandas 进行时间序列分析
- excel - 谷歌表格下载为 Excel (XLSX)
- vb.net - 启动 CMD 窗口最小化?