在写这篇文章时,我正在检查与相关主题相关的所有问题,但无法找到这个 Newbs C# 问题的简单答案
我想......如果可以的话,尽可能多地给出一个解释清楚的答案(拜托!)
我做了一个公共静态类
public static class MyLoadedBtmpToolBox
{
public static string FnameToLoad;
public static bool PutLoadedByteArrInPicbox;
public static string[] LoadedRefrnce;
public static int SourceX_Loaded, SourceY_Loaded, RectWidth_Loaded, RectHeight_Loaded;
---> public static int tst = Str2Int(LoadedRef[0]);
public static byte[] LoadedByteArr;
}
这个类通常默认情况下,在我使用的主要形式中
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using System.Threading;
using System.Diagnostics;
using System.Drawing.Imaging;
using System.IO;
using System.Security.Cryptography;
using WindowsInput;
namespace MyScrCupTry1
{
public partial class MyForm1 : Form
{
public static class MyLoadedBtmpToolBox
{
public static int testStr2Int = Str2Int("100");
}
public int Str2Int(string STR)
{
int strInt = Convert.ToInt32(null);
if (isntEmpty(STR))
{
strInt = Convert.ToInt32(STR);
}
else
{
MessageBox.Show("theString " + STR + " is Null");
}
return strInt;
}
}
我无法通过使用主表单中的testStr2Int
公共“帮助方法”来评估 a 值,但我遇到了错误:Str2Int()
错误 1非静态字段、方法或属性'MyScrCupTry1.MyForm1.Str2Int(string)' G:\RobDevI5-Raid-0\Documents\Visual Studio 2010\Projects\WindowsFormsApplication2\WindowsFormsApplication2\MyForm1 需要对象引用.cs 95 45 MyScrCuptry1
如果可能/(非非法),从静态类访问主窗体公共元素的正确方法是什么...
- 重新编辑
在这两个答案之后...
我试图从第一个答案中实现代码而没有预期的结果我想我不知道正确的代码结构与覆盖 OnLoad(..) 的东西......
但 !
我已将方法Str2Int(STR)
从公共变为公共静态
所以现在表单本身的元素仍然可以访问(我很惊讶)Str2Int()
静态类,我也可以访问它......
这一切都感谢tp也将其变为静态,
当将 Str2Int() 从 public 更改为 public static 时,我是否遗漏了其他东西是否存在“隐藏”缺点?