方法,参数和成员变量,在Windows到Mono端口中无法访问

时间:2018-01-03 18:41:52

标签: c# mono

我无法在SO上找到这个。我正在将一个Windows .NET应用程序移植到Linux上的Mono上,该应用程序可以完美地编译和运行。我错过了一些小事。以下是代码的一部分:

using System;
using System.IO;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Data.SQLite;
using System.Text.RegularExpressions;
using System.Windows.Forms;

namespace DAPTimeClock
{
    public static class DatabaseOps
    {
        private static string _dbFile;

        public static string Get_dbFile()
        {
            return _dbFile;
        }

        public void Set_dbFile(string value)
        {
            this._dbFile = value;
        }

        public static bool foundFile = false;

        public static string SetFile(String dblocation = @"Data" +
                         "Source=../db/TimeClock.db; Version=3;")
        {
            Set_dbFile( dblocation );
            int pathStart = Get_dbFile().IndexOf ('=') + 1;
            int pathEnd = Get_dbFile().IndexOf (";") - 1;
            string filePath = Get_dbFile().Substring (pathStart, 
            pathEnd - pathStart + 1);

            if (File.Exists (filePath)) {
                foundFile = true;
                return string.Format ("The db file {0} has been " +
                                 "located",  filePath);                      
            } else 
            {
                foundFile = false;
                return string.Format("Unable to find db file {0}.", 
                                    filePath);
            }
        }

        public static bool AddPerson(Person p)
        {
            bool result = false;

   Class Continues .....         

以下是问题:

  • 其他类无法从此类中找到任何方法。恩。 DatabaseOp.Set_dbFile()没有产生这样的方法。
  • 此类中的方法无法从此类中找到方法。
  • 此类中的方法无法查看外部类。
  • 如果我将参数传递给类中的方法,编译器会说它找不到该名称的参数。
  • 类中的方法无法看到自己的成员变量。

我做了以下事情:

  • 我删除了静态,现在制作常规对象。 (没有变化)
  • 我仔细检查了名称空间。 (所有相同,没有拼写错误)
  • 我尝试将成员变量公开并添加get;并设置;

我很难过。任何人都可以看到可能会挂起来的东西吗?我错过了单声道的东西吗?所有其他课程都工作正常。

1 个答案:

答案 0 :(得分:0)

Set_dbFile应声明为

   public static void Set_dbFile(string value)

编译器应该抱怨:"不能在静态类"中声明实例成员。你错过了吗?