Top-level statements must precede namespace and type declarations. [Test]csharp(CS8803)

2023-11-16

C#
.NET 6
结构体

C# 控制台应用程序定义了一个结构体,然后创建结构体实例,报如下错误:

Top-level statements must precede namespace and type declarations. [Test]csharp(CS8803)

在这里插入图片描述

把 Student stu1 = new Student(“小明”,22); 结构体的定义放在初始化的后面就不报错了,这是为什么?
在这里插入图片描述
我个人的理解是因为C#控制台应用程序,从上往下执行,执行到 Student stu1 = new Student(“小明”,22); 然后再去找 Student 的定义以及它的构造函数。

我猜,这个问题在其他的应用程序中应该不会存在,只是出现在控制台应用程序这种从上往下有严格执行顺序的应用程序中。

在这里插入图片描述

  • C# 结构体
  • 结构体类型数组

代码如下:

// See https://aka.ms/new-console-template for more information
Console.WriteLine("Hello, World!");

Student stu1 = new Student("小明",22);
Student stu2 = new Student("小红",23);
Student stu3 = new Student("小丽",20);
Student stu4 = new Student("小王",21);


Student [] array = new Student[4]; // 初始化数组 类型 [] 数组名 = new 类型[容量]
array[0] = stu1;     
array[1] = stu2;
array[2] = stu3;
array[3] = stu4;

foreach (Student stu in array) {   // 遍历数组 foreach(类型 变量名 in 数组名)

    Console.WriteLine("{0}的年龄是{1}",stu.name, stu.age);  // 打印输出姓名和年龄
}


public struct Student {     // 定义结构体Student
    public string name;

    public int age;

    public Student(string name, int age) {      // 构造函数
        this.name = name;
        this.age = age;
    }

    public void PrintStudent() {

        Console.WriteLine(this.name,this.age);
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Top-level statements must precede namespace and type declarations. [Test]csharp(CS8803) 的相关文章

  • C++ 维护子类对象的混合集合

    如果我在这里错过了一个相当基本的概念 我很抱歉 但我正在尝试弄清楚如何维护多个类类型的集合 所有类类型都派生自同一个父类 并且在检索它们时仍然可以访问它们的特定于子类的方法从集合中 作为上下文 我有一个基类 BaseClass 和许多类 例
  • 如何在多线程C++ 17程序中交换两个指针?

    我有两个指针 pA 和 pB 它们指向两个大的哈希映射对象 当pB指向的哈希图完全更新后 我想交换pB和pA 在C 17中 如何快速且线程安全地交换它们 原子 我是 c 17 的新手 2个指针的原子无等待交换可以通过以下方式实现 inclu
  • C++ 是否可以在 MacOS 上与 OpenMP 和 boost 兼容?

    我现在已经尝试了很多事情并得出了一些结论 也许 我监督了一些事情 但似乎我无法完成我想要的事情 问题是 是否有可能使用 OpenMP 和 boost 在 MacOS High Sierra 上编译 C 一些发现 如果我错了请纠正我 Open
  • 如何填充 ToolStripComboBox?

    我发现它很难将数据绑定到ToolStripComboBox 好像没有这个ValueMember and DisplayMember特性 怎么绑定呢 访问toolstripcombobox中包装的组合框并访问其ValueMember Disp
  • 如何使用 Castle Windsor 将对象注入到 WCF IErrorHandler 实现中?

    我正在使用 WCF 开发一组服务 该应用程序正在使用 Castle Windsor 进行依赖注入 我添加了一个IErrorHandler通过属性添加到服务的实现 到目前为止一切正常 这IErrorHandler对象 一个名为FaultHan
  • 函数参数的默认参数是否被视为该参数的初始值设定项?

    假设我有这样的函数声明 static const int R 0 static const int I 0 void f const int r R void g int i I 根据 dcl fct default 1 如果在参数声明中指
  • 为什么在 WebApi 上下文中在 using 块中使用 HttpClient 是错误的?

    那么 问题是为什么在 using 块中使用 HttpClient 是错误的 但在 WebApi 上下文中呢 我一直在读这篇文章不要阻止异步代码 https blog stephencleary com 2012 07 dont block
  • 从同一个类中的另一个构造函数调用构造函数

    我有一个带有两个构造函数的类 C 这是代码片段 public class FooBar public FooBar string s constructor 1 some functionality public FooBar int i
  • 使用 GCP 的数据存储区时如何区分代码是在模拟器中运行还是在 GKE 中运行

    按照中给出的说明进行操作后 我不确定是否遗漏了任何内容https cloud google com datastore docs tools datastore emulator https cloud google com datasto
  • File.AppendText 尝试写入错误的位置

    我有一个 C 控制台应用程序 它作为 Windows 任务计划程序中的计划任务运行 此控制台应用程序写入日志文件 该日志文件在调试模式下运行时会创建并写入应用程序文件夹本身内的文件 但是 当它在任务计划程序中运行时 它会抛出一个错误 指出访
  • 告诉 Nancy 将枚举序列化为字符串

    Nancy 默认情况下在生成 JSON 响应时将枚举序列化为整数 我需要将枚举序列化为字符串 有一种方法可以通过创建来自定义 Nancy 的 JSON 序列化JavaScript 原始转换器 https github com NancyFx
  • C# 存档中的文件列表

    我正在创建一个 FileFinder 类 您可以在其中进行如下搜索 var fileFinder new FileFinder new string C MyFolder1 C MyFolder2 new string
  • 为什么我的单选按钮不起作用?

    我正在 Visual C 2005 中开发 MFC 对话框应用程序 我的单选按钮是 m Small m Medium 和 m Large 它们都没有在我的 m Summary 编辑框中显示应有的内容 可能出什么问题了 这是我的代码 Pizz
  • C++ int 前面加 0 会改变整个值

    我有一个非常奇怪的问题 如果我像这样声明一个 int int time 0110 然后将其显示到控制台返回的值为72 但是当我删除前面的 0 时int time 110 然后控制台显示110正如预期的那样 我想知道两件事 首先 为什么它在
  • 等待 IAsyncResult 函数直至完成

    我需要创建等待 IAsyncResult 方法完成的机制 我怎样才能做到这一点 IAsyncResult result contactGroupServices BeginDeleteContact contactToRemove Uri
  • WebBrowser.Print() 等待完成。 。网

    我在 VB NET 中使用 WebBrowser 控件并调用 Print 方法 我正在使用 PDF 打印机进行打印 当调用 Print 时 它不会立即启动 它会等到完成整个子或块的运行代码 我需要确保我正在打印的文件也完整并继续处理该文件
  • String.Empty 与 "" [重复]

    这个问题在这里已经有答案了 可能的重复 String Empty 和 有什么区别 https stackoverflow com questions 151472 what is the difference between string
  • 可访问性不一致:参数类型的可访问性低于方法

    我试图在两个表单之间传递一个对象 基本上是对当前登录用户的引用 目前 我在登录表单中有一些类似的内容 private ACTInterface oActInterface public void button1 Click object s
  • 如何在richtextbox中使用多颜色[重复]

    这个问题在这里已经有答案了 我使用 C windows 窗体 并且有 richtextbox 我想将一些文本设置为红色 一些设置为绿色 一些设置为黑色 怎么办呢 附图片 System Windows Forms RichTextBox有一个
  • 我可以在“字节数”设置为零的情况下调用 memcpy() 和 memmove() 吗?

    当我实际上没有什么可以移动 复制的时候 我是否需要处理这些情况memmove memcpy 作为边缘情况 int numberOfBytes if numberOfBytes 0 memmove dest source numberOfBy

随机推荐

  • A - C语言实验——求一个3*3矩阵对角线元素之和

    Description 给定一个3 3的矩阵 请你求出对角线元素之和 Input 按照行优先顺序输入一个3 3矩阵 每个矩阵元素均为整数 Output 从左下角到右上角这条对角线上的元素之和 Sample Input 1 2 3 3 4 5
  • [MRCTF2020]千层套路1

    BUU题目复现 开局一个压缩包 flag全靠懵 拿到压缩包第一件事直接看能不能直接解压缩 很明显 有密码 不行 下一步 使用010Editor查看内部结构 发现确实操作着很多的 zip 文件 但是我使用binwalk foremost都没办
  • Python爬虫实战,requests模块,Python实现IMDB电影top数据可视化

    前言 利用Python爬取IMDB电影 废话不多说 让我们愉快地开始吧 开发工具 Python版本 3 6 4 相关模块 requests模块 random模块 bs4模块 以及一些Python自带的模块 环境搭建 安装Python并添加到
  • 凯恩帝对刀和刀补_KND数控车床试切对刀和调刀补

    展开全部 M 是测量的意思 有的系统是输32313133353236313431303231363533e78988e69d8331333262353363入你的测量值 然后点一个 测量 按钮 数控车对刀步骤 第一把刀的对刀步骤 第一步 确
  • linux 查询服务器的配置信息

    linux下看配置 可没有windows那么直观 你只能一个一个查看 一 cpu root srv more proc cpuinfo grep model name root srv grep model name proc cpuinf
  • 【Java数据结构】泛型详解+图文,通配符上界、下界

    0 泛型的本质 0 泛型的目的 1 泛型的语法 1 1 泛型的使用 2 包装类 2 1 装箱和拆箱 2 2 1练习题 3 泛型如何编译 4 泛型的上界 5 通配符 5 1通配符上界 5 2通配符下界 有坑填坑 0 泛型的本质 泛型的本质 泛
  • 【目标检测】25、Sparse R-CNN: End-to-End Object Detection with Learnable Proposals

    文章目录 一 背景 二 动机 三 方法 3 1 Backbone 3 2 Learnable proposal box 3 3 Learnable proposal feature 3 4 Dynamic instance interact
  • 【转载】Android Studio工程目录解析

    转载自CSDN网友HaiBing Android Studio工程目录结构分析 上 Android Studio工程目录结构分析 下 目录 Android Studio工程目录结构分析 上 Android Studio工程目录 app目录结
  • nltk_data无法下载或无法使用问题的解决方案之一

    nltk data无法下载或无法使用问题的解决方案汇总 报错展示 问题解决 本人使用的方法 1 手动下载 nltk data 数据压缩包 2 解压压缩包 找到packages文件夹 3 将packages文件夹中的文件全部复制到nltk d
  • 你是不是一个优秀的项目经理人(转)

    下面是项目管理之中最重要的一些技能被简化成的一些简单的小问题 你可以用它来测试你自己的水平 一 你没有很好地计划是因为你认为自己是一个执行者而不是计划者 很多人认为他们自己是行动型的 当他们被指派了一项任务时 他们的第一个反应就是着手开始解
  • 四、SpringBoot框架

    目录 什么是SpringBoot框架 SpringBoot的特点 作用 必会 简箱版tomcat 优缺点 面试 SpringBoot运行原理 开箱即用的全过程 SpringBoot是如何完成自动配置的 面试 SpringBoot启动项 St
  • C++面向对象------继承+多态

    概念 1 继承是从已有的类创建新类的过程 这使得创建和维护一个应用程序变得更容易 达到了重用代码功能和提高执行时间的效率 2 继承呈现了面向对象程序设计的层次结构 体现了从简单到复杂的认知过程 3 在c 类中 如果类b继承于类a 则类a叫做
  • uiautomator2常见的API操作

    click int x int y pressHome getCurrentActivityName pressMenu getCurrentPackageName takeScreenshot File storePath getDisp
  • 在typora中插入图片和视频

    在typora中插入图片和视频 sm ms图床 免费方案使用sm ms图床 这个东西很好用而且免费 使用方法可以参考 需要配置的点就是下面这一段 picBed uploader smms smms token 这里是你的smmstoken
  • 记录缓存知识

    所谓的缓存 就是将程序或系统经常du要调用的对象存在内存中 一遍其使用zhi时可以快速调用dao 不必再去创建新的重复的实例 这样做可以减少系统开销 提高系统效率 1 通过文件缓存 顾名思义文件缓存是指把数据存储在磁盘上 不管你是以XML格
  • 详解Linux系统中的软件管理及软件仓库

    目录 一 Linux中软件包的类型 二 软件包的名称结构 三 rpm命令管理软件包 四 本地软件仓库的搭建 五 dnf软件管理命令 总结 一 Linux中软件包的类型 DEB UEBlinux DEBlinux RPM redhat cen
  • Linux系统下对树莓派镜像进行烧写操作。可搭建自己的迷你服务器

    烧写后可以当做搭建自己的迷你服务器或者可携带的计算机哦 我以linux系统下对内存卡进行烧写镜像 烧写的先以snappy ubuntu care为例 网上的资料大多都是win下操作的 步 1 购买嵌入式开发板 可选够集成度大的 可烧写系统的
  • 【ES小结】还在用ElasticSearch做查询?换条思路实现高效数据统计

    博客首页 派 大 星 欢迎关注 点赞 收藏 留言 本文由派大星原创编撰 系列专栏 ES小结 本系列记录ElasticSearch技术学习历程以及问题解决 ElasticSearch高效数据统计 聚合查询 什么是聚合查询 Kibana 命令测
  • logback日志配置

  • Top-level statements must precede namespace and type declarations. [Test]csharp(CS8803)

    C NET 6 结构体 C 控制台应用程序定义了一个结构体 然后创建结构体实例 报如下错误 Top level statements must precede namespace and type declarations Test csh