关于方法重写和OOP原则的有效性,我有一点混乱.我知道关于密封,阴影,覆盖,虚拟等的一切,但我遇到了一个场景,这让我很困惑.假设我有:
class classA
{
public virtual void sayhello()
{
Console.WriteLine("hello I'm A");
}
};
class classB :classA
{
public override void sayhello()
{
Console.WriteLine("hello I'm B");
}
};
class Program
{
static void Main(string[] args)
{
classB a = new classB();
a.sayhello();
}
}
Run Code Online (Sandbox Code Playgroud)
根据我到目前为止研究的所有内容,可以使用子类中的override关键字覆盖声明为virtual或abstract(在抽象类中)的方法.根据这个,上面的代码工作完美.当我删除virtual关键字,然后尝试使用override关键字覆盖该方法时,编译器会给出错误:
不能覆盖继承的成员'inheritence.classA.sayhello()',因为它没有标记为虚拟,抽象或覆盖
然后我从子类中删除了覆盖关键字,并将实现提供为:
class classB :classA
{
public void sayhello()
{
Console.WriteLine("hello I'm B");
}
};
Run Code Online (Sandbox Code Playgroud)
在这种情况下,该方法可以被覆盖.我能够覆盖不是虚拟或抽象的方法.所以,我的问题是:
1. …
我正在寻找一种Tesseract或Google的Vision API类型OCR,可以帮助提取护照/身份证图像中的文本信息(可以从移动设备捕获或可以扫描.因此帧大小可能会有所不同).我经历过几个帖子,并发现Tesseract是首选解决方案.
我还使用Vision API测试了我的测试数据,并获得了99%的准确和令人满意的结果.但我有以下问题/要求:
问题:
摘要:是否有可用的(付费或开源) c#库,它将护照/ cedula图像作为输入,并返回准确的文本?任何建议/帮助将不胜感激.
我只是从Asp.net core Dependency Injection开始,我的概念可能不准确。这篇docs.asp.net帖子介绍了如何将上下文注入控制器。从测试角度看,我对注入几乎没有困惑。假设我们有以下情形:
public interface ITasksRepository
{
public void Create();
}
//This is fake implementation, using fake DbContext for testing purpose
public class TasksRepositoryFake : ITasksRepository
{
public void Create()
{
FakeDbContext.Add(sometask);
//logic;
}
}
//This is actual implementation, using actual DbContext
public class TasksRepository : ITasksRepository
{
public void Create()
{
DbContext.Add(someTask);
//logic;
}
}
Run Code Online (Sandbox Code Playgroud)
现在,为了在控制器中注入上下文,我们将其设计为:
public class TasksController : Controller
{
public ITasksRepository TaskItems { get; set; }
public TodoController(ITaskRepository taskItems)
{
TaskItems …Run Code Online (Sandbox Code Playgroud) 我正在学习MVC.我只需要澄清一些事情.我正在关注这个教程.这个人使用LocalDB来存储Movie对象.他只是添加一个连接字符串,然后在添加控制器后,如教程中所述,自动添加CRUD操作方法.那家伙使用了类似的句子,"你只需要将你的电影对象存储在localdb中".自动创建数据库(代码优先方法).(我知道如何使用Entity Framework,我们必须创建一些模型来映射我们的数据库).但是这个教程让我很困惑.关于创建数据库等没有提及,而他的连接字符串包含一个单词" Movie.mdf "(在数据源下).最后,跟着他,我发现服务器未找到错误(26).我错过了什么,作为MVC的新手?
问题:
是否可以知道被调用动作所期望的参数类型?例如,我有一些action:
[TestCustomAttr]
public ActionResult TestAction(int a, string b)
{
...
Run Code Online (Sandbox Code Playgroud)
并TestCustomAttr定义为:
public class TestCustomAttr : System.Web.Mvc.ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
...
Run Code Online (Sandbox Code Playgroud)
因此,当调用TestAction此处内部时OnActionExecuting,我想知道该TestAction方法所期望的类型.(例如:在这种情况下,有2个预期参数.一个是类型int,另一个是类型string.
实际目的:
实际上我需要更改值QueryString.我已经能够获取查询字符串值(通过HttpContext.Current.Request.QueryString),更改它,然后手动将其添加ActionParameters为filterContext.ActionParameters[key] = updatedValue;
问题:
目前,我尝试将值解析为int,如果它被成功解析,我认为它是一个int,所以我进行需求更改(例如值+ 1),然后将其添加到操作参数,对应其键.
qsValue = HttpContext.Current.Request.QueryString[someKey].ToString();
if(Int32.TryParse(qsValue, out intValue))
{
//here i assume, expected parameter is of type `int`
}
else
{
//here i assume, …Run Code Online (Sandbox Code Playgroud) c# custom-attributes query-string onactionexecuting asp.net-mvc-4
我已经从那里我们在表中添加下列值UI 字段
我有一个具有某些现有属性的现有类产品
public class Product
{
public string ProductID { get; set; }
//product in a product search listing
public string StoreName { get; set; }
public string SearchToken { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我在找这将增加现有的类属性的方法的产品在用户时,在表中添加值运行时间(动态)字段
c# ×5
.net ×1
asp.net-core ×1
asp.net-mvc ×1
ocr ×1
oop ×1
overriding ×1
query-string ×1
reflection ×1
sealed ×1
windows ×1