首页 > 解决方案 > 当前上下文中不存在名称“Core”

问题描述

我是 Xamarin 的新手,我正在关注 Xamarin 大学教程。一切正常,直到我开始遇到错误core does not exist。我查看了一个已发布的旧问题并按照说明进行操作,但这对我一点帮助都没有。我已经在下面发布了旧问题的链接。

命名空间中不存在类型或命名空间名称“Core”

MainPage.xml.cs 的代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xamarin.Forms;

namespace MyTelephone
{   
public partial class MainPage : ContentPage
{
    Entry phoneNumberText;
    Button translateButton;
    Button callButton;
    string translatedNumber;




    public MainPage()
    {

        this.Padding = new Thickness(20, 20, 20, 20);

        StackLayout panel = new StackLayout
        {
            Spacing = 15
        };

        panel.Children.Add(new Label
        {
            Text = "Enter a password:",
            FontSize = Device.GetNamedSize(NamedSize.Large, typeof(Label))
        });

        panel.Children.Add(phoneNumberText = new Entry
        {
            Text = "1-855-XAMARIN",
        });

        panel.Children.Add(translateButton = new Button
        {
            Text = "Translate"
        });

        panel.Children.Add(callButton = new Button
        {
            Text = "Call",
            IsEnabled = false,
        });
        translateButton.Clicked += OnTranslate;

        this.Content = panel;

        //InitializeComponent();

    }


    private void OnTranslate(object sender, EventArgs e)
    {
        translatedNumber = 
    Core.PhonewordTranslator.ToNumber(phoneNumberText.Text);
        if (!string.IsNullOrEmpty(translatedNumber))
        {
            callButton.IsEnabled = true;
            callButton.Text = "Call" + translatedNumber;
        }
        else
        {
            callButton.IsEnabled = false;
            callButton.Text = "Call";
        }
    }


    }
}

PhonewordTranslator.cs 的代码

using System.Text;
namespace MyTelephone
{
    public static class PhonewordTranslator
   {
    public static string ToNumber(string raw)
    {
        if (string.IsNullOrWhiteSpace(raw))
            return null;

        raw = raw.ToUpperInvariant();

        var newNumber = new StringBuilder();
        foreach (var c in raw)
        {
            if ("-0123456789".Contains(c))
                newNumber.Append(c);
            else
            {
                var result = TranslateToNumber(c);
                if (result != null)
                    newNumber.Append(result);
                else
                    return null;
            }
        }
        return newNumber.ToString();
    }
    static bool Contains(this string keyString, char c)
    {
        return keyString.IndexOf(c) >= 0;
    }

    static readonly string[] digits = {
        "ABC","DEF","GHI","JKL","MNO","PQRS","TUV","WXYZ"
    };

    static int? TranslateToNumber(char c)
    {
        for (int i = 0; i < digits.Length; i++)
        {
            if (digits[i].Contains(c))
                return 2 + i;
             }
            return null;
        }
    }
}

标签: c#.netxamarinxamarin.forms

解决方案


问题与 xamarin 有关,与您链接的问题无关。

这是错误的原因:

translatedNumber = 
Core.PhonewordTranslator.ToNumber(phoneNumberText.Text);

检查你的文件PhoneTranslator.cs 吧。您需要重命名命名空间。

资源:

https://forums.xamarin.com/discussion/13839/core-phonewordtranslator-tonumber-compilation-error

对于那些需要更多信息的人来说,这个问题可能是因为没有将 PhoneTranslator.cs 文件中的命名空间重命名为“Core”。


推荐阅读