简单继承在项目之间不起作用

时间:2018-07-19 15:18:22

标签: c# inheritance

我只知道我是个白痴,所以有人请告诉我怎么做。

设置很简单:

  1. 使用名为import pandas as pd import numpy as np # Here is an example dataframe df_example = pd.DataFrame(np.random.randint(0,100,size=(100, 4)), columns=list('ABCD')) # Create xlsx file filepath = 'mytempfile.xlsx' with pd.ExcelWriter(filepath, engine='xlsxwriter') as writer: df_example.to_excel(writer, sheet_name='Sheet1',index=False) # Add filter feature to first row import openpyxl xfile = openpyxl.load_workbook(filepath) sheet = xfile.get_sheet_by_name('Sheet1') maxcolumnletter = openpyxl.utils.get_column_letter(sheet.max_column) sheet.auto_filter.ref = 'A1:'+maxcolumnletter+str(len(sheet['A'])) # Save the file xfile.save(filepath) print 'your file:',filepath InherTestInherTest.Base的三个项目(.Net框架,类库)创建解决方案

  2. InherTest.Base.Inherited中,添加以下类:

    命名空间InherTest.Base {     公共抽象类BaseClass     {         内部抽象字符串MEMBER_1 {get; }     } }

  3. 将完全相同的代码(包括名称空间)复制到InherTest.Base中。

  4. InherTest中,添加以下类:

    命名空间InherTest.Base.Inherited {     公共类Inherited:BaseClass     {         内部替代字符串MEMBER_1 {get; }     } }

  5. InherTest.Base.Inherited中将项目引用添加到InherTest.Base.Inherited。请注意错误(“未实现抽象成员”和“找不到要覆盖的合适成员”)。

  6. 删除该引用,并将其替换为InherTest.Base中的一个。观察继承也失败

为什么它们都不起作用?

编辑:最初,我说过一个测试将失败,而另一个将成功。但是,在上述情况下,两次继承尝试均失败。

3 个答案:

答案 0 :(得分:5)

这是因为字符串为internal,因此仅限于自己的项目

答案 1 :(得分:1)

  

为什么它们都不起作用?

如果它们都包含您要求的相同代码,则它们都应该失败。如果不是这种情况,则两个项目之间的代码 是不同的,特别是MEMBER_1public项目中可能被声明为InherTest

InherTest的引用可以与您发布的相同代码一起工作的唯一方法是,如果项目InherTest中具有此程序集级别属性InternalsVisibleToAttribute

[assembly:InternalsVisibleTo("InherTest.Base.Inherited")]

答案 2 :(得分:-2)

继承的命名空间在不同的项目中。 (名称空间看起来好像在一起,但它们不在同一程序集中)。您可以阅读该文章。

https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/internal

相关问题