低落和昂扬

2023-12-08

我是新来的C# (and OOP)。当我有如下代码时:

class Employee
{
    // some code
}


class Manager : Employee
{
    //some code
}

问题1:如果我有其他代码可以执行此操作:

   Manager mgr = new Manager();
   Employee emp = (Employee)mgr;

Here Employee is a Manager,但是当我把它像这样投射到Employee这意味着我正在升级它?

问题2:

当我有几个Employee类对象,其中一些但不是全部是Manager的,我怎样才能尽可能地让他们失望呢?


  1. 那是对的。当你这样做时,你正在将它投射到一个employee对象,因此这意味着您无法访问特定于管理器的任何内容。

  2. 向下转型是指您采用一个基类,然后尝试将其转变为更具体的类。这可以通过使用 is 和显式强制转换来完成,如下所示:

    if (employee is Manager)
    {
        Manager m = (Manager)employee;
        //do something with it
    }
    

或与as像这样的运算符:

Manager m = (employee as Manager);
if (m != null)
{
    //do something with it
}

如果有任何不清楚的地方,我很乐意纠正!

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

低落和昂扬 的相关文章

  • 在 Java 中创建 T 的新实例

    在C 中 我们可以定义一个泛型class A
  • CSharpRepl emacs 集成?

    我碰巧知道莫诺CSharpRepl http www mono project com CsharpRepl 是否有 emacs csharp 模式使用它在一个窗口中运行 REPL 并像 python 模式一样在另一个窗口中编译 运行 C
  • 从代码中,如何创建对存储在附加属性中的对象的属性的绑定?

    我们有一个继承的附加属性来存储一个对象 在可视化树的更下方 我们希望从代码绑定到该对象的属性 通常我们像这样构建绑定的路径部分 var someBinding new Binding Path new PropertyPath Attach
  • 在 C# 中调用 C++ 库 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我有很多用 C 编写的库 我想从 C 调用这些库 但是 我遇到了很多问题 我想知道是否有书籍或指南告诉我如何做到这一点 Dll导入 htt
  • std::call_once 可重入且线程安全吗?

    std call once http en cppreference com w cpp thread call once是线程安全的 但它也是可重入的吗 我使用 VS2012 调试和发布 进行的测试表明 调用std call once从单
  • 在 omp 并行 for 循环中使用 unique_ptr 会导致 SEG.FAULT

    采取以下代码 include
  • 访问 ascx 文件中的母版页控件

    我有一个母版页文件 其中包含 2 个面板控件中的 2 个菜单 我还使用控件来检查用户是否登录并获取用户类型 根据我想要显示 隐藏面板的类型 控件本身不在母版页中引用 而是通过 CMS 系统动态引用 我想在用户控件中使用findcontrol
  • 将接口转换为其具体实现对象,反之亦然?

    在 C 中 当我有一个接口和几个具体实现时 我可以将接口强制转换为具体类型 还是将具体类型强制转换为接口 这种情况下的规则是什么 Java 和 C 中都允许这两个方向 向下转型需要显式转型 如果对象类型不正确 可能会抛出异常 然而 向上转换
  • 根据对象变量搜索对象列表

    我有一个对象列表 这些对象具有三个变量 ID 名称和值 这个列表中可能有很多对象 我需要根据ID或Name找到一个对象 并更改值 例子 class objec public string Name public int UID public
  • UI 函数在快速事件完成之前触发

    我有一个停靠在 Silverlight 应用程序中的 Web 浏览器框架 有时会在其上弹出全窗口 XAML Silverlight UI 元素 我已经或多或少修复了一个老问题 即 Web 框架的内容似乎与 Silverlight 内容不能很
  • 使用 C# 和 wpf 创建类似 Dock 的应用程序

    我需要创建一个与我们购买笔记本电脑时获得的应用程序类似的应用程序 仅当鼠标指针到达窗口顶部时它才可见 那么我怎样才能使用 C 4 0 来做到这一点呢 http www notebookcheck net uploads pics win2
  • 如何在三个 IEnumerable 上使用 Zip [重复]

    这个问题在这里已经有答案了 可能的重复 使用 Linq 从 3 个集合创建项目 https stackoverflow com questions 5284315 create items from 3 collections using
  • 在 asp.net MVC 中使用活动目录进行身份验证

    我想使用活动目录对我的 asp net mvc 项目中的用户进行身份验证 在网上冲浪了几个小时后 我没有找到任何对我有用的东西 我已经看到了所有结果 但什么也没有 我尝试按照许多帖子的建议编辑我的 web config 如果有人可以帮助我提
  • 从BackgroundWorker线程更新图像UI属性

    在我正在编写的 WPF 应用程序中 我有一个 TransformedBitmap 属性 该属性绑定到 UI 上的 Image 对象 每当我更改此属性时 图像就会更新 因此显示在屏幕上的图像也会更新 为了防止在检索下一张图像时 UI 冻结或变
  • 逆向工程 ASP.NET Web 应用程序

    我有一个 ASP NET Web 应用程序 我没有源代码 该 bin 包含 10 个程序集和一个 compiled 文件 我在 App Code dll 上使用 Reflector 它向我显示了类和命名空间之类的东西 但它太混乱了 有没有什
  • 如何停止无限循环?

    我正在编写一个程序 该程序将计算三角形或正方形的面积 然后提示用户是否希望计算另一个 我的代码已经运行到可以计算任一形状的面积的程度 但随后不再继续执行代码的其余部分 例如 如果选择了正方形 则计算面积 然后返回到正方形边长的提示 我假设这
  • 在 C#.NET 中安全删除文件

    在我正在做的一个项目中 我想为用户提供 安全 删除文件的选项 例如 用随机位或 0 覆盖它 在 C NET 中是否有一种简单的方法可以做到这一点 效果如何 你可以调用系统内部删除 http technet microsoft com en
  • 来自 3rd 方库的链接器错误 LNK2019

    我正在将旧的 vc 6 0 应用程序移植到 vs2005 我收到以下链接器错误 我花了几天时间试图找到解决方案 错误LNK2019 无法解析的外部符号 imp 创建AwnService 52 在函数 public int thiscall
  • INotifyPropertyChanged 和 propertyName

    我一直不确定它的含义propertyName实施时INotifyPropertyChanged 所以一般来说你实现INotifyPropertyChanged as public class Data INotifyPropertyChan
  • 如何使用placement new重新初始化该字段?

    我的课程包含字段 private OrderUpdate curOrderUpdate 我一遍又一遍地使用它 经常需要重新初始化 for int i 0 i lt entries size i auto entry entries i ne

随机推荐

  • 如何为 Android Studio 3.6 或更高版本创建自定义项目模板?

    我试图创建项目模板来优化我的时间 我找到了很多关于它的答案 但不适用于最新版本的 Android Studio 我尝试复制现有的项目模板并工作 但前提是我使用主项目模板的相同名称 我需要的只是创建一个新的项目模板并显示在向导屏幕中 如下图所
  • 如何在 Javascript 中进行日期比较? [复制]

    这个问题在这里已经有答案了 我想在 javascript 中比较两个日期 我一直在做一些研究 但我能找到的只是如何返回当前日期 我想比较两个与今天无关的单独日期 我怎么做 var startDate Date document form1
  • 整数最大值 = ~0;这是什么意思?

    整数最大值 0 这是什么意思 The 运算符是一元按位补运算符 用于计算按位补 这意味着它反转其参数中的所有位 0 变为 1 1 变为 0 因此 int max 0 这是设置max32 位值的负数0000 0000 0000 0000 00
  • 在 Python 中多处理 HTTP get 请求

    我必须向大量网站发出大量 数千个 HTTP GET 请求 这是相当慢的 因为某些网站可能没有响应 或需要很长时间才能响应 而另一些网站则超时 由于我需要尽可能多的响应 因此设置较小的超时 3 5 秒 对我不利 我还没有在 Python 中进
  • 使用 .htaccess 重写查询字符串

    我正在尝试重写 URL 以用于 SEO 目的 旧的网址是 http www domain net index php p beer 新的网址应该是 http www domain net beer 我在 htaccess 中的代码是 Rew
  • Asp.net mvc 限制特定用户访问文件夹内容

    我试图限制用户 管理员除外 访问我的文件夹图像 例如路径是 content images coverBeg jpg 如果用户导航到domain content images coverBeg jpg 他可以看到该文件 我尝试过不同的事情 但
  • 在 Python 中查找偶数

    我有一个 Python 作业 如下所示 编写一个完整的 python 程序 要求用户输入两个整数 然后程序输出Both Even如果两个整数都是偶数 否则程序输出Not Both Even 我计划使用 if 和 else 语句 但由于我正在
  • 为什么必须在头文件中定义两次变量?

    为什么必须在头文件中定义两次变量 这些变量之间有什么区别 第一个定义在这里 interface MyController UIViewController NSInteger selectedIndex 第二个定义在这里 property
  • C++ 和 cUrl:如何获取 SSL 错误代码

    我正在通过 SSL 建立与安全服务器的连接 一切正常 我的 CA 证书很好用 retCode curl easy setopt handleCurl CURLOPT CAINFO sSSLCertificate retCode curl e
  • php 会话变量不起作用

    以下是我的登录页面的代码 其中登录脚本检查用户的真实性 然后使用标头函数重定向到收件箱页面
  • 使用批处理文件关闭文件夹窗口

    我的桌面上有一个名为test 我想创建一个批处理文件 以便在使用 Windows 资源管理器打开此文件夹时自动关闭窗口 我尝试了下一个命令 但执行时没有任何反应 TASKKILL F FI WINDOWTITLE eq test IM ex
  • Google脚本-超出最大执行时间,帮助优化

    谷歌脚本电子表格 新手 我尝试创建一个矩阵 如果数组是一个小型数据库 一切正常 当然 如果它超过 800 行 更多则取决于错误 您已超出允许的最大运行时间 无法有效创建矩阵 var s SpreadsheetApp getActiveShe
  • 如何在 python 函数的声明中找到其名称引用?

    这是完全出乎意料的 至少对我来说 foo会知道foo函数内部def for foo 这到底是怎么回事 gt gt gt def foo x print wow print globals get foo sorry return foo g
  • 旋转屏幕后找不到微调器

    我正在使用 片段 来获取具有两个 片段 的布局 因此我的类扩展了 片段 我正在左侧 片段 上加载 ListView 在右侧 片段 上加载另一个修改后的 ListView 在这里 我有一个 旋转器 我必须改变它的颜色 我有这个代码 priva
  • 两个并排的 div,一个带有谷歌地图,第二个带有固定宽度

    我想并排使用两个 DIV 第一个 DIV 具有响应宽度 内部带有谷歌地图 第二个 DIV 具有固定宽度 jsFiddle 示例 HTML div class wrapper div div div class right div div C
  • 如何修复 java.lang.arrayindexoutofboundsException: 0?

    我是新手java 谁能帮我解决这个错误arrayindexoutofboundsexception public class Minesweeper public static void main String args int M Int
  • 使用刷新令牌进行 C#sharp 身份验证的 Google.Apis 客户端

    我正在使用适用于 NET 的新测试版 Google API 客户端库来加载多个用户的任务列表 它被归类为 已安装的应用程序 根据谷歌开发控制台 具有多个授权用户帐户 验证一个用户的身份非常简单 使用 google apis 但我不知道如何使
  • 访问复合数组元素 plpgsql

    我有一个用户定义的复合数据类型的数组 我需要对 plpgsql 函数中的数组元素进行一些操作 但我没有获得访问各个元素的正确语法 任何帮助表示赞赏 下面粘贴的是代码的简化版本 CREATE TYPE playz AS a integer b
  • bash 中具有算术比较行为的 if 语句

    我正在学习 bash 我注意到一些奇怪的东西我 还 无法解释 在学校我了解到 if 语句将 0 评估为真 将 1 评估为假 因此它可以与其他命令的状态代码一起使用 现在我的问题是 为什么会发生这种情况 echo 5 gt 2 prints
  • 低落和昂扬

    我是新来的C and OOP 当我有如下代码时 class Employee some code class Manager Employee some code 问题1 如果我有其他代码可以执行此操作 Manager mgr new Ma