首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XAML / cs -更新包后,成员名称不能与其封装类型(CS0542)相同。

XAML / cs -更新包后,成员名称不能与其封装类型(CS0542)相同。
EN

Stack Overflow用户
提问于 2018-07-06 12:37:37
回答 2查看 5.7K关注 0票数 8

我刚刚更新了我的应用程序中的包,并且我收到了许多这种类型的新错误,我不明白:

代码语言:javascript
复制
/Users/alan/Downloads/Japanese 31/Japanese/obj/Debug/Views/Help/GettingStarted.xaml.g.cs(51,51): 

Error CS0542: 'GettingStarted': member names cannot be the same as their enclosing type (CS0542) (Japanese)

我有这样的XAML代码;

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<ContentPage 
    xmlns="http://xamarin.com/schemas/2014/forms" 
    xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 
    xmlns:local="clr-namespace:Japanese;assembly=Japanese"
    x:Class="Japanese.GettingStarted"
    x:Name="GettingStarted" 
    Title="Getting Started">
<ContentPage.Content>

我的C#

代码语言:javascript
复制
using System;
using System.Collections.Generic;

using Xamarin.Forms;

namespace Japanese
{
    public partial class GettingStarted : ContentPage
    {
        public GettingStarted()
        {

我的XAML和cs编码错误吗?我认为这是用部分类和同一个类名来实现这一目的的方法。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-07-06 12:41:52

x:Name="GettingStarted",这就是问题所在。这将是您的页面的名称,但它也是该页面的类的名称。为x:Name属性指定一个值将在代码隐藏中创建一个具有该名称的变量。所以,您将得到的是:GettingStarted GettingStarted = new GettingStarted();,至少可以说,这是令人困惑的。我猜Xamarin团队遇到了这些相同的名称和类型的问题,并决定阻止它。

尝试想出一个不同的名称,或者,如果您不想使用不同的大小写,比如:x:Name="gettingStarted"

票数 36
EN

Stack Overflow用户

发布于 2021-10-19 09:24:13

这发生在我试图在*.xaml.cs中重命名XAML的类文件时

我发现了一个简单的修复方法:

  1. 复制*.xaml & *.xaml.cs中的所有文本/脚本
  2. 删除WPF窗口/用户控件
  3. 创建新的WPF窗口/用户控件,并根据您的需要使用新名称
  4. 粘贴复制的*.xaml & *.xaml.cs (粘贴后更改类文件的名称)
  5. 现在它应该像魅力一样发挥作用
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51210658

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档