编程语言
首页 > 编程语言> > c#-名称空间不能直接包含成员…类型或名称空间定义,或文件末尾预期错误

c#-名称空间不能直接包含成员…类型或名称空间定义,或文件末尾预期错误

作者:互联网

我正在尝试为Windows Phone编译Sync Framework 4.0的示例代码,但是在几个文件中遇到了错误.这些文件之一是:

#if SERVER
namespace Microsoft.Synchronization.Services
#elif CLIENT
namespace Microsoft.Synchronization.ClientServices
#endif
{
    /// <summary>
    /// Represents the base interface that all offline cacheable object should derive from.
    /// </summary>
    public interface IOfflineEntity
    {
        /// <summary>
        /// Represents the sync and OData metadata used for the entity
        /// </summary>
        OfflineEntityMetadata ServiceMetadata { get; set; }
    }
}

有两个错误:

>名称空间不能直接包含诸如字段或方法之类的成员-对于第一个括号
>类型或名称空间定义,或预期的文件结尾-最后一个括号

我已经在Google中搜索了这两个错误,并且发现了很多此类错误的答案-但是,这些错误都不能应用于我的情况(afaik中没有缺少括号).

解决方法:

由于未定义SERVER或CLIENT conditional symbol,因此收到此错误.在预处理阶段消除了#if#endif指令中的文本后,编译器仅看到以下代码:

{
    /// <summary>
    /// Represents the base interface that all offline cacheable object should derive from.
    /// </summary>
    public interface IOfflineEntity
    {
        /// <summary>
        /// Represents the sync and OData metadata used for the entity
        /// </summary>
        OfflineEntityMetadata ServiceMetadata { get; set; }
    }
}

无效的C#代码(因为在打开花括号之前缺少“命名空间xyz”).

在Visual Studio中,转到项目属性,然后在“构建集”页面上将“条件编译”符号设置为SERVER或CLIENT(名称区分大小写).

标签:windows-phone,c
来源: https://codeday.me/bug/20191101/1982643.html