我创建了一个构造函数并获得错误:非静态字段需要对象引用,方法如何修复

本文关键字:字段 静态 对象引用 何修复 方法 错误 创建 构造函数 一个 | 更新日期: 2023-09-27 18:03:27

我的项目是在c#中使用xamarin android.

using System;
using Android.App;
using Android.Content;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.OS;
using Android.Speech.Tts;
using System.IO;
using System.Windows;
using System.Collections.Generic;
using System.Linq;
namespace App5
{
    [Activity(Label = "App5", MainLauncher = true, Icon = "@drawable/icon")]
    public class MainActivity : Activity
    {
        int count = 1;

        public MainActivity()
        {
            var langAvailable = new List<string> { "Default" };
            var localesAvailable = Java.Util.Locale.GetAvailableLocales().ToList();
            foreach (var locale in localesAvailable)
            {
                LanguageAvailableResult res = TextToSpeech.IsLanguageAvailable(locale);
                switch (res)
                {
                    case LanguageAvailableResult.Available:
                        langAvailable.Add(locale.DisplayLanguage);
                        break;
                    case LanguageAvailableResult.CountryAvailable:
                        langAvailable.Add(locale.DisplayLanguage);
                        break;
                    case LanguageAvailableResult.CountryVarAvailable:
                        langAvailable.Add(locale.DisplayLanguage);
                        break;
                }
            }
        }

这一行:

TextToSpeech.IsLanguageAvailable(locale)

我得到错误:

错误1:非静态字段,方法或属性需要对象引用Android.Speech.Tts.TextToSpeech.IsLanguageAvailable(Java.Util.Locale)

试图将构造函数更改为静态或将变量LanguageAvailableResult更改为静态,但没有帮助。

我创建了一个构造函数并获得错误:非静态字段需要对象引用,方法如何修复

var tts=new TextToSpeech();
LanguageAvailableResult res=tts.IsLanguageAvailable(locale);