首页 新闻 会员 周边

C#结构不使用new实例化问题,在各种资料上看到结构不用new实例化,可以定义变量直接赋值

0
悬赏园豆:5 [已解决问题] 解决于 2023-06-12 14:13

我在用最新的visual studio 2022中发现编译不过,是什么原因呢
代码如下:

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

namespace ConsoleApp1
{

public struct Point
{
    public int X; 
}

// See https://aka.ms/new-console-template for more information
using System.Drawing;

Point a;
a.X = 400;
Console.WriteLine(a.X);

报一下错误
严重性 代码 说明 项目 文件 行 禁止显示状态
错误 CS0165 使用了未赋值的局部变量“a” ConsoleApp1 C:\Users\tangsonghua\source\repos\Solution1\ConsoleApp1\Program.cs 6 活动

999999999999999的主页 999999999999999 | 初学一级 | 园豆:3
提问于:2023-06-12 12:22
< >
分享
最佳答案
0

1.你虽然定义了一个Point结构体,但是你实际上使用的是System.Drawing.Point
2.结构体是可以不实例化就使用字段,但是你这里使用到的是属性X,属性的getter/setter本质还是方法,当使用到方法时,仍然需要先实例化才能初始化属性/方法

收获园豆:3
复制粘贴机器人 | 小虾三级 |园豆:702 | 2023-06-12 14:08

对的,非常感谢

999999999999999 | 园豆:3 (初学一级) | 2023-06-12 14:11
其他回答(1)
0

命名空间引入错了,你应该引入ConsoleApp1
using ConsoleApp1;

收获园豆:2
顾星河 | 园豆:7173 (大侠五级) | 2023-06-12 14:01

对的,非常感谢

支持(0) 反对(0) 999999999999999 | 园豆:3 (初学一级) | 2023-06-12 14:11
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册