类型或命名空间定义,或编译时预期的文件结尾问题



我正在创建一个基于web的expo-sender应用程序,但我在编译项目时遇到了问题。它一直让我说

"类型或命名空间定义,或预期的文件结尾";

我的代码看起来像这样,我从这里得到了

using MobileServices.Client;
using MobileServices.Models;
using System;
using System.Collections.Generic;
using System.Linq;

var expoSDKClient = new PushApiClient();
var pushTicketReq = new PushTicketRequest()
{
PushTo = new List<string>() { "..." },
PushBadgeCount = 7,
PushBody = ""
};
var result = expoSDKClient.PushSendAsync(pushTicketReq).GetAwaiter().GetResult();
if (result?.PushTicketErrors?.Count() > 0)
{
foreach (var error in result.PushTicketErrors)
{
Console.WriteLine($"Error: {error.ErrorCode} - {error.ErrorMessage}");
}
}
var pushReceiptResult = expoSDKClient.PushGetReceiptsAsync(pushReceiptReq).GetAwaiter().GetResult();
if (pushReceiptResult?.ErrorInformations?.Count() > 0)
{
foreach (var error in result.ErrorInformations)
{
Console.WriteLine($"Error: {error.ErrorCode} - {error.ErrorMessage}");
}
}
foreach (var pushReceipt in pushReceiptResult.PushTicketReceipts)
{
Console.WriteLine($"TicketId & Delivery Status: {pushReceipt.Key} {pushReceipt.Value.DeliveryStatus} {pushReceipt.Value.DeliveryMessage}");
}

这是我正在构建的第一个C#应用程序,我已经搜索了错误,但没有结果。你能帮我解决这个问题吗。我知道这很简单,但我真的需要帮助,因为我陷入了困境。

您需要像这样声明一个命名空间和一个类,然后将其放入一个函数中。

c#中的每一段代码都需要在一个类型(可以是类、结构或接口等(内声明。

所有类型依次在接口内部声明,接口是类型和其他接口的逻辑分组。

所有(或大部分(代码建模行为都应该在函数内部声明。

using MobileServices.Client;
using MobileServices.Models;
using System;
using System.Collections.Generic;
using System.Linq;
namespace mynamespace {
public class ExpoClient {
public void DoPushSend() {
var expoSDKClient = new PushApiClient();
var pushTicketReq = new PushTicketRequest()
{
PushTo = new List<string>() { "..." },
PushBadgeCount = 7,
PushBody = ""
};
var result = expoSDKClient.PushSendAsync(pushTicketReq).GetAwaiter().GetResult();
if (result?.PushTicketErrors?.Count() > 0)
{
foreach (var error in result.PushTicketErrors)
{
Console.WriteLine($"Error: {error.ErrorCode} - {error.ErrorMessage}");
}
}

var pushReceiptResult = expoSDKClient.PushGetReceiptsAsync(pushReceiptReq).GetAwaiter().GetResult();
if (pushReceiptResult?.ErrorInformations?.Count() > 0) {
foreach (var error in result.ErrorInformations)
{
Console.WriteLine($"Error: {error.ErrorCode} - {error.ErrorMessage}");
}
}
foreach (var pushReceipt in  pushReceiptResult.PushTicketReceipts)
{
Console.WriteLine($"TicketId & Delivery Status: {pushReceipt.Key} {pushReceipt.Value.DeliveryStatus} {pushReceipt.Value.DeliveryMessage}");
}
}
}
}

请注意,存储库中的代码只是整体的一个片段,可能需要分解为更多的函数。我的修复只想让你的代码编译。

看起来您使用的代码示例是用C#9编写的,目前正在预览中。这个版本引入了一个称为顶级语句的新功能,它允许您在不将代码封装在类的方法中的情况下编写代码。您可能使用的是早期版本,该版本要求入口点位于名为Main的静态方法中。

最新更新