vs 2005调试

Visual C# 2005开发技术 第01章 C#与.NET Framework简介//第02章 C#程序设计基础//第03章 与用户交互//第04章 常用控件//第05章 类//第06章 抽象类、多态及接口//第07章 处理异常和错误//第08章 XML编程//第09章 应用程序部署..//第10章 时间跟踪系统 立即下载

vs 2005调试 

在下面的练习中,将创建一个应用程序,它包含的一个方法能够计算一名顾问的收费金额——假定该顾问每天收取固定的费用,将根据工作了多少天来收费。首先要开发应用程序的逻辑,然后利用“生成方法存根向导”来写出这个逻辑使用的方法。接着,我们将在一个控制台应用程序中运行方法,以获得对该程序的最终印象。最后,我们将使用Visual Studio 2005调试器来检查方法调用。

   开发应用程序逻辑

   1. 在Visual Studio 2005中打开My Documents文件夹下的/Microsoft Press/Visual CSharp Step by Step/Chapter 3/DailyRate子文件夹中的DailyRate项目。

   2. 在“解决方案资源管理器”中,双击Program.cs文件,以便在“代码和文本编辑器”窗口中显示程序。

   3. 在run方法主体中添加以下语句: double dailyRate = readDouble("Enter your daily rate: "); int noOfDays = readInt("Enter the number of days: "); writeFee(calculateFee(dailyRate, noOfDays));   应用程序启动时,run方法将由Main方法调用。

   刚才在run方法中添加的代码块会调用readDouble方法(马上就要开始写这个方法),以便让用户输入顾问的日费率。下一个语句调用readInt方法(也马上由我们来写)来获取天数。最后将调用writeFee方法(等待编写),以便在屏幕上显示结果。注意,传给writeFee的值是calculateFee方法(最后一个要写的方法)返回的值,该方法获取日费率和天数,并计算出要支付的总金额。

   注意 由于尚未写好readDouble,readInt,writeFee或者calculateFee方法,所以“智能感知”无法在输入上述代码的时候自动列出它们。另外,先不要试图生成程序,因为肯定会失败。

   使用“生成方法存根向导”来编写方法

   1. 在“代码和文本编辑器”窗口中,单击run方法中的readDouble方法调用。

   随后会在readDouble的第一个字母("r")下方显示一个小的下划线图标。将鼠标指针移至字母"r",会自动出现一个图标。将鼠标指针悬停在这个图标上方,会显示一条工具提示:“用于生成方法存根的选项(Shift + Alt + F10)”,并提供了一个下拉菜单。单击下拉菜单,就会看到一个选项:生成"DailyRate.Program"中的"ReadDouble"的方法存根。   2. 单击“生成"DailyRate.Program"中的"ReadDouble"的方法存根”选项。

   随后,“生成方法存根向导”会检查对readDouble方法的调用,判断参数类型和返回值,并生成一个具有默认实现的方法,如下所示: private double readDouble(string p) { throw new Exception("The method or operation is not implemented."); }

  新方法是使用一个private限定符来创建的。方法主体目前只是掷出一个异常。我们将在下一步将主体替换成自己的语句。

   3. 从readDouble方法中删除throw new Exception(…);语句,将它替换成以下代码行: Console.Write(p); string line = Console.ReadLine(); return double.Parse(line);

  上述代码块会将变量p中的字符串输出到屏幕。该变量是调用方法是传递的字符串参数,其中包含提示用户输入日费率的一条消息。用户输入一个值,该值将通过ReadLine方法读入一个字符串中,并通过double.Parse方法转换成一个double值。结果将作为方法调用的返回值传回。

   注意 ReadLine方法是与WriteLine配套的一个方法,它从键盘读取用户直到按回车键之前的输入。用户输入的文本将作为返回值传回。

   4. 在run方法中,单击readInt方法调用,按照和前面一样的过程,为readInt方法生成一个方法存根。   readInt方法将使用一个默认的实现来生成。

   提示 为了生成一个方法存根,还可以右击一个方法调用,并从弹出菜单中选择“生成方法存根”。

   5. 将readInt方法的主体替换成以下语句: Console.Write(p); string line = Console.ReadLine(); return int.Parse(line);

  这个代码块和readDouble方法的非常相似。惟一的区别是方法返回一个int值,所以要使用int.Parse方法将字符串转换成整数。

   6. 右击run方法中的calculateFee方法调用,选择“生成方法存根”。

   随后会生成calculateFee方法: private object calculateFee(double dailyRate, int noOfDays) { throw new Exception("The method or operation is not implemented"); }

  注意,“生成方法存根向导”使用传入的实参名称来生成形参名称(当然,假如觉得不合适,完全可以更改形参名称)。更让人感兴趣的是方法的返回类型,目前是object。这表明“生成方法存根向导”无法根据当前的上下文来确定方法应该返回什么类型的值。object类型只是意味着一样“东西”,在方法中添加具体的代码时,应该把它修改成自己需要的类型。

   7. 修改calculateFee方法的定义,使它返回一个double值: private double calculateFee (double dailyRate, int noOfDays) { throw new Exception("The method or operation is not implemented"); }

8. 将calculateFee方法的主体替换成以下语句,它计算两个参数值的乘积来获得需要支付的金额,并返回结果。 return dailyRate * noOfDays;   9. 右击run方法中的writeFee方法调用,选择“生成方法存根”。

   随后会生成writeFee方法。注意,“生成方法存根向导”根据calculateFee方法的定义判断出writeFee方法的参数应该是一个double参数。另外,方法调用没有使用一个返回值,所以方法的类型为void: private void writeFee(double p) { ... }

  10. 在writeFee方法内部输入以下语句: Console.WriteLine("The consultant's fee is: {0}", p * 1.1);   注意 这个版本的WriteLine方法演示了如何利用一个简单的格式字符串。{0}是一个占位符;在求值的时候,它会被字符串之后的表达式(p * 1.1)的值替换掉。

   11. 选择“生成”|“生成解决方案”。

   提示 如果对语法已经充分熟悉,也可以通过直接在“代码和文本编辑器”窗口中输入的方式来编写方法。并非一定要使用“生成方法存根”选项。

       重构代码

   Visual Studio 2005非常有用的一项特性就是对代码进行重构。某些时候,我们需要在应用程序的多个位置写相同的(或者非常相似的)代码。在这种情况下,可以选定刚刚输入的代码块,然后从菜单栏中选择“重构”|“提取方法”。随后会出现“提取方法”对话框,提示你输入一个新方法的名称,该方法将用于包含你刚才输入的代码。请输入方法名,并单击“确定”。随后,系统将创建这个方法,并将你刚才输入的代码转移到其中,刚才输入的代码则被替换成对该方法的一个调用。“提取方法”还具有一定的智能,可以判断方法是否应该获取任何参数和返回值。

   测试程序

   1. 选择“调试”|“开始执行(不调试)”,Visual Studio 2005将生成程序,并运行它。运行时会显示一个控制台窗口。

   2. 在Enter Your Daily Rate(输入日费率)提示之后,请输入525,然后按回车键。

   3. 在Enter The Number Of Days(输入天数)提示之后,请输入17,然后按回车键。

   程序会在控制台上显示以下消息: The consultant’s fee is: 9817.5

  按回车键返回Visual Studio 2005编程环境。

   在最后一个练习中,将使用Visual Studio 2005调试器,以比较慢的步调来运行程序。你将看到每个方法被调用的时刻(这个行动称为跳入),并看到每个return语句如何将控制返还给调用者(这个行动称为跳出)。进入和离开方法时,都需要使用“调试”工具栏上的工具。然而,在调试模式中运行应用程序时,相同的命令也可从“调试”菜单中选择。

   使用Visual Studio 2005调试器依次执行每个方法

   1. 在“代码和文本编辑器”窗口中,找到run方法。

   2. 使鼠标指针对准run方法中的第一个语句。

   run方法的第一个语句是: double dailyRate = readDouble("Enter your daily rate: ");

  3. 右击该行的任何地方,从弹出菜单中选择“运行到光标处”。

   程序将开始运行,并在抵达run方法的第一个语句之后暂停。“代码和文本编辑器”窗口左侧的一个黄色箭头指明了当前语句,该语句还会用一个黄色背景来突出显示。

   4. 选择“视图”|“工具栏”,确定已经勾选了“调试”工具栏。“调试”工具栏也许会停靠在其他工具栏旁边。如果找不到这个工具栏,可以试着使用“视图”菜单中的“工具栏”命令暂时隐藏它,并留意哪些按钮从界面上消失了。重新显示这个工具栏,就可以知道它应该在什么位置出现。

   提示 要想将“调试”工具栏独立出来,请使用工具栏左侧的控点,把它拖放以“代码和文本编辑器”窗口上方。

   5. 单击“调试”工具栏上的“逐语句”按钮。这个行动会使调试器跳入正在调用的方法。左侧的黄色箭头会指向readDouble方法的起始大括号。再次单击“逐语句”按钮,指针会转向第一个语句:Console.Write(p);

   提示 按F11键的作用等同于单击“调试”工具栏上的“逐语句”按钮。

   6. 单击“调试”工具栏上的“逐过程”按钮。这会导致方法执行下一个语句而不调试它。黄色箭头将指向方法的第二个语句,程序会在一个控制台窗口中显示“Enter Your Daily Rate”提示(控制台窗口可能隐藏在Visual Studio 2005后面)。   提示 按F10键的作用等同于单击“调试”工具栏上的“逐过程”按钮。

   7. 单击“调试”工具栏上的“逐过程”按钮。这一次,黄色箭头会消失,控制台窗口将获得焦点,因为程序正在执行Console.ReadLine方法,要求用户输入一些内容。

   8. 在控制台窗口中输入525,按回车键继续。

   随后,控制将返回Visual Studio 2005。黄色箭头将在方法的第三行出现。

   9. 不要做出任何单击行动,请将鼠标指针移至方法第二行或第三行对line变量的引用上(具体对准哪一行无关紧要)。   随后会出现一条屏幕提示,它显示了line变量的当前值(525)。利用这个特性,可以确定在逐方法执行的时候,变量已经设置成自己期望的一个值。

   10. 单击“调试”工具栏上的“跳出”按钮。

   这会导致当前方法继续无中断地运行,直到结束。当readDouble方法执行完毕之后,黄色箭头会指回run方法的第一个语句。

   提示 按Shift + F11键的作用等同于单击“调试”工具栏上的“跳出”按钮。

   11. 单击“调试”工具栏上的“逐语句”按钮。

   黄色箭头会移至run方法的第二个语句: int noOfDays = readInt("Enter the number of days: ");

  12. 单击“调试”工具栏上的“逐过程”按钮。

   这一次,选择了直接运行方法,而不逐语句地调试该方法。控制台窗口将再次出现,提示输入一个天数。           13. 在控制台窗口中输入17,按回车键继续。

   控制将返回至Visual Studio 2005。黄色箭头将移至run方法的第三个语句: writeFee(calculateFee(dailyRate, noOfDays));

  14. 单击“调试”工具栏上的“逐语句”按钮。

   黄色箭头将跳至calculateFee方法的起始大括号处。该方法将先于writeFee方法被调用。

   15. 单击“调试”工具栏上的“跳出”按钮。

   黄色箭头将跳回run方法的第三个语句。

   16. 单击“调试”工具栏上的“逐语句”按钮。

   这一次,黄色箭头将跳至writeFee方法的起始大括号处。

   17. 让鼠标指针对准方法定义中的p变量。

   随后将显示p的值(8925.0)。

   18. 单击“调试”工具栏上的“跳出”按钮。

   随后会在控制台窗口中显示消息“The consultant’s fee is: 9817.5”(如果控制台窗口隐藏在Visual Studio 2005之后,请把它带到前台来显示)。黄色箭头将返回run方法的第三个语句。

   19. 单击“调试”工具栏上的“继续”按钮,使程序连续运行,而不在每个语句处暂停。

   应用程序将一直运行至结束。

   提示 还可以按F5键在调试器中继续执行。

   恭喜!你已经成功编写并调用了方法,并利用Visual Studio 2005调试器对它们进行了调试.

 
scratch lenet(4): 开根号的C语言实现 使用C语言,分别使用二分法、牛顿法、卡马克快速法,求解正实数的开根号。包括公式推导、代码实现、运行结果,不使用任何第三方库和C标准库的数学库。 阅读详情

相关推荐

autodl云服务器使用中的conda源报错

通过find path -name filename找到.condarc文件,在autodl服务器中,一般在/root/.condarc。为了利用jypyter打开conda虚拟环境运行,需要下载ipykenel。这个报错是源的问题,在通过源获取包元数据时出现了HTTP 429错误。通过conda换源解决。修改.condarc文件,命令: vim .condarc。但这样还不能解决问题,得把报错中有问题的源注释掉。通过以下命令添加清华镜像源。把报错的链接源注释如下。

Ty_kilig的博客 1584

VS2005 DEBUG状态下修改代码(VS2005 使用技巧)

因为最近同事说VS2005调试慢,所以才想起这个问题。我一般能不调试就不调试,主要也是因为调试太慢,而且自己也尽量避免调试,否则确实有很多时间在调试的等待过程ing。一般咱也就这么将就过去了。(*^__^*)。 没记错的话,应该是刚装完的VS2005可以在DEBUG模式下修改代码的,但不知道为什么在我们的项目中,VS2005就不能在调试状态下修改代码。找来一些相关资料。VS2005把这个功能称为“...

我的鱼塘 286

自适应粒子群优化(Adaptive Particle Swarm Optimization,APSO

下面是一个关于自适应粒子群优化(Adaptive Particle Swarm Optimization,APSO)的博客,希望可以帮助您。提示:以下是本篇文章正文内容,下面案例可供参考在上面的代码中,表示粒子的数量,表示解空间的维度,表示迭代次数,表示优化的目标函数。在__init__方法中,我们初始化了粒子群的位置和速度,并将每个粒子的位置作为其最优解,将其适应度值初始化为正无穷。我们还初始化了学习因子和惯性权重的参数。在run方法中,我们迭代了次,计算每个粒子的适应度值和最优解。

weixin_52026057的博客 9916

Visual Studio 2005中编译调试新功能

最近学习asp.net 2.0时新编译修改的一篇文章,原文发表在http://dev.yesky.com/msdn/359/2195359.shtml上,现转到这里。   在日常的编程中,程序员经常离不开的工作之一,就是调试。当写好一段代码或程序后,在运行后总会出现这样那样的问题,比如各样的错误,程序员就必须进行调试,将这些错误排除。在最新出炉的Visual Studio 2005中,将提供十分强...

jackyrongvip的专栏 207

(Linux)DHCP 超级作用域和中继代理(超难受做了超久)

DHCP服务器在192.168.159.0 可以实现分配IP的功能,现在要跨网段分配IP 就需要用到DHCP中继代理。中继代理有两张网卡分别eth0:IP 192.168.159.2 ;eth1: IP:192.168.200.2 。现在要实现192.168.200.0网段的客户机可以获取DHCP服务器的IP。中继代理其实是相当于一个路由器的作用 DHCP服务器的IP地址 :192.168.159...

DJ_joker的博客 2225

httprunner V4.3.5 安装与使用--快速上手(超详细-超长篇)

HttpRunner是一款面向 HTTP(S) 协议的通用测试框架,只需编写维护一份 YAML/JSON 脚本,即可实现自动化测试、性能测试、线上监控、持续集成等多种测试需求。继承 Requests 的全部特性,轻松实现 HTTP(S) 的各种测试需求测试用例与代码分离,采用YAML/JSON的形式描述测试场景,保障测试用例具备可维护性测试用例支持分层机制,充分实现测试用例的复用测试用例支持参数化和数据驱动机制使用 skip 机制实现对测试用例的分组执行控制。

Dreams°的博客 3892

VS2005调试问题解决方案集锦[转]

这个是转自优快云上边,原创为德仔工作室 1.检测到有潜在危险的Request.Form值 原因: (1)在提交数据的页面或webconfig中没有对validateRequest的属性进行正确的设置 (2)HTML里面写了两个<form>引起 解决: 方案一:在.aspx文件头中加入这句:<%@Pagevalidat...

354

Android投屏开发实战:手把手教你用Miracast实现Sink端功能(附完整代码)

本文是一份Android投屏Sink端开发的实战指南,详细讲解了如何利用Miracast协议和Wi-Fi P2P技术,从零构建一个功能完整的屏幕接收器。内容涵盖环境搭建、通过反射启用WFD Sink模式、RTSP协议协商、RTP流接收与解析,以及最终使用IjkPlayer进行音视频解码播放的全过程,并附有核心代码示例。

cherry的博客 880

【C/C++语言入门篇】-- 调试基础

通过前面两篇,相信大家已经基本了解了我们的研究思路。既然是研究,那么必须的研究工具就得熟练掌握了。这里我所指的研究工具就是VC,我所使用的VC版本是2005。本文也将根据VC2005进行探讨。可能很多朋友或者初学者还是使用的VC6.0。在这里本人不推荐使用VC6.0。原因很简单,VC6.0已经过时了,后面的版本比VC6.0更强大方便。可能也是因为众多经典的程序设计书籍使用的都是VC6.0。有的朋友

技术思行 1万+

PyGPT:桌面AI助手整合大模型与本地知识库,打造高效工作流

大语言模型(LLM)通过理解和生成自然语言,正深刻改变人机交互方式。其核心原理是基于海量数据训练的Transformer架构,能够根据上下文进行预测和生成。这一技术价值在于将强大的AI能力平民化,广泛应用于代码生成、文档分析、创意写作和智能问答等场景。通过API调用云端模型或本地部署开源模型,开发者可以构建个性化的AI应用。本文聚焦于PyGPT这一桌面AI助手,它巧妙地将ChatGPT、Claude、Gemini等主流大模型与LlamaIndex、Ollama等本地化工具整合,实现了聊天、文件分析、代码解释

weixin_28679635的博客 437

fatal: unable to access ‘https://github.com/Stability-AI/stablediffusion.git/‘解决方案

本文主要介绍在安装 stable-diffusion-webui 时出现的 fatal: unable to access 'https://github.com/Stability-AI/stablediffusion.git/': Failed to connect to github.com port 443 after 21071 ms: Couldn't connect to server 问题的解决方案,希望能对你有所帮助。

水滴的博客 5685

VS2005里三种有用的调试方法

 一般开发asp.net的时候,我们调试都是设置好相应的断点然后启动项目进行调试,而在页面文件比较多的时候可能会比较浪费时间,而在VS2005里面,我们却可以很容易的针对一个或者多个文件进行调试。第一种办法是调试后台的,只要按平时那样设置好断点,但不需要启动项目。我们只需要选择 调试->附加到进程,然后选择aspnet_wp.exe,这样,运行到你需要调试的页面时,效果就和启动项目的一样的。

Focus on workflow 1111

vs2005调试js

vs2005调试js 首先设置IE,   依次选择 工具-> Internet   选项->   高级, 找到 浏览 下的两个禁用脚本调试复选框, 将其取消选择(IE默认将这两项选中, 不能进行脚本调试),  1. 调试JS脚本文件(*.js文件)          直接在JS文件中F9设置断点, F5运行调试即可.      2. 调试页面文件中脚本(*.aspx中JS脚本)

lisky119的专栏 3734

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

VS2005调试错误

1.VS2005调试时出现:无法启动程序"C:/PROGRA~1/MOZILL~1/FIREFOX.EXE".  解决方法:重启PDA,重新打开VS20052.fatal error LNK1169: 找到一个或多个多重定义的符号dllmodul.obj : error  LNK2005: 已经在 packet.obj 中定义  解决方法 1.在.h里的函数声明前加 inline2.在项目->属性

不抛弃,不放弃 2053

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

如何在VS2005中调试JavaScript脚本

如何在VS2005中调试JavaScript脚本JavaScript是一种弱类型的编程语言,与C#等语言不同,在JavaScript中,变量的类型是在运行时解析的,而且可以在运行时变换变量的类型。这为它带来了前所未有的灵活性,可以实现很多绚丽的功能,但是对于IDE来说却很头疼,由于只能在运行时获得关于变量类型的信息,因此实现智能提示,调试等功能非常困难。不过令人兴奋的是,微软已经在VS2005

dreamliner的专栏 3254

vs 2005断点调试

/*<![CDATA[*/if(top.location != self.location){ top.location = self.location;}var myref = encodeURIComponent("http://hi.baidu.com/tangdecai/blog/item/233975f0098679c67831aa49%2Ehtml");/*

chinastory的专栏 3951

vs2005不能调试的一个问题

转载!: 解决VS2005无法调试的问题当我们试图在VS2005中调试源代码的时候常常出现上面的问题而无法调试,下面是解决方法:一: 单击 项目- 》项目属性 (我这里是 test)二:如下,在选择“调试信息格式”时有几个方法,这里我们选择和VC6下相同的方法“用于编辑并继续的程序库”表示我们修改源代码后仍可以继续调试,其它的方法大家可以自己去尝试。三:将 “优化” 选

slowboy的小窝 3970

VS2005中远程调试的配置方法

VS2005中远程调试的配置方法darkbasic 2007.02.06今天用VS2005做远程调试的时候,发现它跟VS2003有很大的不同,记录一下:在VS2005中不能使用VS2003的远程调试程序。VS2005远程调试的方法:(1) 远程端:安装VS2005光盘"X:/vs/Remote Debugger/x86/ rdbgsetup.exe"。或者直接运行或copy本地端的: "P

darkbasic的专栏 2573

vs2005设置断点不能调试问题

     不知道什么缘故,今天在vs2005的项目里设置断点,调试程序。但没有达到预期的效果,程序像没有设置断点一样照常运行。     尝试了百度里的N种方法,始终没法解决。在放弃与坚持之间选择了后者。终于在一朋友那有了正解,问题得到解决。     下面是解决方案:1. 单击开始,单击运行 , 类型 regedit然后单击确定。2. 中注册表编辑器, 找到并单击以下注册表项:HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Lsa3. 右击 Lsa ,指

Candy1116的专栏 1231

利用VS2005进行dump文件调试

前言:利用drwtsn32或NTSD进行程序崩溃处理,都可以生成可用于调试的dmp格式文件。使用VS2005打开生成的DMP文件,能很方便的找出BUG所在位置。本文将讨论以下内容:1、  程序编译选项2、  利用VS2005 分析dump文件3、  常见问题讨论一、       程序编译选项PDB files contains all debug information lik

沙漠黑鸟的专栏 1万+

使用VS2005调试ASP程序

(幸好有这篇文章,被来是没信息高asp了的,比起asp.net来asp 真的很烦人的,但是这篇文章让我信心大曾,呵呵,厉害吧!) 内容:  很早之前就在PJ的blog上看到可以用VS2005调试ASP程序点击在新窗口中浏览此图片http://www.jxstnu.cn/xieyunc/attachment/external.gif,但是没有写出具体的步骤,后来一次偶尔也让我找到了方法,但是一直没把

.NET寺庙 2060

如何远程调试VS2005中的程序

在最近的软件维护过程中,软件在Win10系统下出了一些小问题,但是开发过程却是在XP上VS2005中开发的;需要远程调试。 下面记录一下如何远程调试VS2005上的程序。 ...

青衣守旧人 267

VS2005远程调试

在VS2005中不能使用VS2003的远程调试程序。VS2005远程调试的方法: (1) 远程端:安装VS2005光盘"X:\vs\Remote Debugger\x86\ rdbgsetup.exe"。或者直接运行或copy本地端的: "Program Files\Microsoft Visual Studio 8\Common7\IDE\Remote Debugger\x86"  如果是6

章志强的专栏 1319
上一篇: 托业经验
下一篇: http://community.youkuaiyun.com/Expert/topic/5312/5312945.xml?temp=.5996363递归
sunbin6ji
博客等级 码龄21年 2粉丝 21原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值