下面c#程序有啥问题,应该怎么修改?谢谢了 using System; using System.Collections.Generic; using Sy
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了下面c#程序有啥问题,应该怎么修改?谢谢了 using System; using System.Collections.Generic; using Sy相关的知识,希望对你有一定的参考价值。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace TEST
class Program
static void Main(string[] args)
Console.Write(MyClass.value);
Console.Read();
class MyClass
int value = 2008;
MyClass是一个类,而value是MyClass类的成员变量,所以必须有一个实例才能调用。
不过 mf_难忘 的写法才是实例化的正确做法,1楼
MyClass m1;
只定义了m1但并未实例化,依旧不能访问的。
第二个问题,就是权限问题,value 是一个私有成员变量,在外部无法访问,即使用
MyClass myClass = new MyClass();
实例化, myClass.value 依然是无法访问的,编译时VS会报错,
解决办法是在定义 value 时使用 public 来开放权限,即:
public int value = 2008;
如果就是不想使用 new MyClass()来建立实例,也可以将value声明成静态变量,静态变量只和类相关而与类的实例无关:
class MyCalss
public static int value = 2008;
这样在Main()中
Console.Write(MyClass.value);
就可以正常运行。
再说最后一点,3楼说的可以有多个方法不允许两个类是错误的,
C#的一个类可以分开在不同的文件中定义各个部分,
也可以在一个文件中定义若干个类,这个是完全没有问题的,
倒是楼主的声明方式有一点点小问题,
MyClass类的定义写在了 Program类的内部,因此MyClass类就成了Program类的一个内部类,
其它类是无法访问到的,
一般只在比较特殊的时候才会内部类追问
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Test3
class Program
static void Main(string[] args)
Console.Write(MyStruct.value);
Console.Read();
struct MyStruct
int value = 2008 ;
又如何修改呢?谢谢啦
这么修改:
static void Main(string[] args)
MyStruct ms;
ms.value = 2008;
Console.Write(MyStruct.value);
Console.Read();
struct MyStruct
public int value;
和class一样,结构的成员变量也需要通过一个结构的实例才能使用,
所以必须:
Mystruct ms;
因为结构是值类型,直接这么写就可以了,已经给它分配空间创建好实例了,
这一点和类是不一样的,比如以前的类MyClass, 只写 MyClass mc; 不用 new MyClass()的话,只会创建一个空指针,不会创建MyClass实例。
接下来 ms.value = 2008; 这是因为C#中值类型必须明确初始化。
而在MyStruct的定义中, 一是必须使用 public 关键字来让成员变量 value 可以被外部访问,
另一个, 结构定义中不可以初始化成员变量,
int value = 2008; 是错误的。
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace TEST
public class MyClass
public static int value
get return 2008;
class Program
static void Main(string[] args)
Console.Write(MyClass.value);
Console.Read();
参考技术B 页面中有两个class类,可以有多个方法,但是不允许有两个类 参考技术C 错误有几个:
1、MyClass 中的value 没有被声明可访问性,默认是private的。
2、MyClass 的value 字段并没有添加static关键字来说明他是类成员变量。所以MyClass.value来调用时错误的。
修改如下
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace TEST
class Program
static void Main(string[] args)
Console.Write(MyClass.value);
Console.Read();
class MyClass
public static int value = 2008;
参考技术D using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
class Program
static void Main(string[] args)
MyClass ms = new MyClass();
Console.WriteLine(ms.Value);
Console.WriteLine(ms.value);
Console.Read();
class MyClass
public int value = 2008;
public int Value
get return value;
1.类没有实例化,
2.value字段的修饰符没有 第5个回答 2011-03-04 using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace TEST
class Program
static void Main(string[] args)
Console.Write(MyClass.value);
Console.Read();
public static class MyClass
public static int value = 2008;
把类和变量声明为静态的公共的就好了
以上是关于下面c#程序有啥问题,应该怎么修改?谢谢了 using System; using System.Collections.Generic; using Sy的主要内容,如果未能解决你的问题,请参考以下文章
谁能告诉我MD5值的用途?怎样去用呢?下面问题补充中文件检验码的SHA和CRC32又有啥用呢?帮下忙哈!谢谢
C#程序做记事本, 记事本中的格式下面得菜单的自动换行怎么做