我多年来一直担任顾问编程,我喜欢我的工作,涉及大量面向对象的分析和使用托管语言(即软件工程)的软件系统设计.但是我最终想获得一个博士学位,让我感到困扰的是我从未真正"获得"计算机科学理论.在大学里,我在这些课程中只做得很好,因为他们的教学方式并不适合我.我通过观察概念的应用来学习,而不是死记硬背.
我之前已经克服了这样一个障碍的一个例子 - 我有一个可怕的第一年.这位教授(我现在知道他几乎没有资格,也是一位不称职的老师)从C++开始,教我们程序编程.从技术上讲,我已经了解了一个对象是什么,但直到我看到面向对象分析和设计的应用(具有设计模式和其他结构,如链表),我才真正理解它们的用途.
我将如何学习编译器,编程语言理论和算法分析等学科?什么是开始这些的好方法?例如,我想最终编写一个编译器(为了好玩),但我不知道从哪里开始.有没有人遇到过这种情况?有关教程,免费在线讲座视频或参考的建议(像w3schools那样的东西会很棒)?
(我想补充一点,浏览Stackoverflow已经教会了我的负载,但我希望它有点更正式:)
编辑:谢谢大家的建议.我已经标记了一个对我个人有用的答案,但请保持答案:)
我正在使用数据集从数据库中提取数据.连续的一个领域是NULL.我知道这个.但是,以下vb.net代码会抛出StrongTypingException(在数据集设计器中的自动生成的get_SomeField()方法中):
If Not IsDBNull(aRow.SomeField) Then
'do something
End If
编辑:If aRow.SomeField is DBNull.Value Then也返回相同的错误.哎呀.
我有一个使用Fragments 的标签应用程序,还有一个小问题.
MainActivity(扩展FragmentActivity- 没有为布局规范保存代码)在其布局中onCreate包含一个Fragment被调用的TabsFragment(扩展Fragment,实现OnTabChangeListener)(将标签本身放在a中FrameLayout),Fragment使用Transactions 切换子.
后者Fragments是具有实际内容的子实体,当用户转动设备,访问另一个应用程序,接听电话或执行其他操作时,我希望保存该状态.目前,子节点的状态Fragment未保存,但活动会记住Fragment正在显示哪个子节点.(因此,如果我将设备置于横向模式并在标签3处于活动状态时转动设备,则标签3将以纵向模式显示,重置,但显示.因此,某些状态正在保留,而我没有做任何事情).
因为我有多个布局(横向和纵向),所以android:configChanges="orientation"在清单中不是一个选项 - 我不想使用它,因为它是一个美化的绑带.
我使用的是V4支持库(修订版10)和精练的API后,我遇到了FragmentManager.saveFragmentInstanceState()和Fragment.setInitialSavedState(Fragment f).我已经为Fragment重写onPause()方法中的每个子项设置了saveFragmentInstanceState()TabsFragment.我不确定这是否有效,因为无论我把setInitialSavedState它放在哪里,它都给出了IllegalStateException- 但即使我刚刚初始化了一个新的子Fragment标签,也会发生这种情况.它还崩溃,当我把它变成onResume在TabsFragment.
代码段:
//... this is the 'showTab' method
if(getFragmentManager().findFragmentByTag(id) == null)
{
Fragment f = null;
if(BASIC_TAB.equals(id))
{
f = …Run Code Online (Sandbox Code Playgroud) 我正在使用DevExpress制作的XtraGrid套件.我找不到任何类型的功能,但我很好奇你是否可以添加按钮或超链接到网格单元格.
上下文:我有一个事件列表.每个事件都有一个时间,开始/结束和一个类别(实用程序和维护).可以有Start事件和Stop事件.完成了对问题的分析后,我决定为每个事件设置一个StartTime和EndTime是行不通的.
因此,如果事件开始,我会将当前时间记录到Event对象,并将其设置为"Start"事件.我想在该行的单元格中添加一个"停止"按钮/超链接.如果用户希望记录Ends事件,则事件类型等将被复制到类型为"Stop"的新事件,按钮将消失.
我希望这是有道理的.
编辑:Aaronaught的回答实际上比我原来要求的更好(一个按钮)所以我已经更新了这个问题.这样,任何想要在单元格中放置超链接的人都可以从他的例子中受益:)
我有一个项目,它打开一个简单的Excel文件并填充它.它工作正常,直到今天早上,它突然开始给我上面的错误:'Application' is ambiguous in the namespace 'Microsoft.Office.Interop.Excel'.
我没有更改任何项目引用,或文件本身内的任何内容.引用包括Microsoft.Office.Interop.Excel.进口声明是:imports Microsoft.Office.Interop
对象声明也是完整的:Dim xl As Microsoft.Office.Interop.Excel.Application哪一行是给我错误的!
我试过谷歌搜索这个错误,唯一的反应是我需要声明xl为Microsoft.Office.Interop.Excel.Application.
事实上,我没有更改项目中的任何内容,也没有代码告诉我这是Visual Studio 2008中的损坏.但是,清理和重建项目,重新启动Windows以及重新启动VS都没有效果.
有任何想法吗?
我扩展了AppenderSkeleton以创建一个名为HTTPAppender的自定义appender,但是在xml文件中引用了它.Log4Net显然无法找到我的自定义appender.有没有办法从xml文件引用它指向我的项目,或者我是否必须将自定义appender的源代码添加到log4net中,以便将其打包在log4net.dll中?
调试时,我在立即窗口中收到以下错误:
log4net:ERROR XmlHierarchyConfigurator: Could not create Appender [HTTPAppender] of type [HTTPAppender.HTTPAppender,HTTPAppender]. Reported error follows. System.IO.FileNotFoundException: Could not load file or assembly 'HTTPAppender' or one of its dependencies. The system cannot find the file specified. File name: 'HTTPAppender' at System.RuntimeTypeHandle._GetTypeByName(String name, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMark& stackMark, Boolean loadTypeFromPartialName) at System.RuntimeTypeHandle.GetTypeByName(String name, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMark& stackMark) ...etc
这是xml文件的log4net部分:
<log4net>
<appender name="HTTPAppender" type="HTTPAppender.HTTPAppender,HTTPAppender">
<evaluator type="log4net.Core.LevelEvaluator,log4net">
<threshold value="WARN"/>
</evaluator>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="#%level - %message" /> …
我正在尝试创建一个mailto链接,其中包括单击图片并将文本文件中的一些原始内容包含到邮件正文中.
以下不起作用(haml).
= mail_to "friend@example.com" do
%img{:src=>"#{asset_path 'mail.png'}"}
Run Code Online (Sandbox Code Playgroud)
我甚至都不知道如何将身体预装在那里.我知道有一个:body声明,但它在这种情况下的用法使我无法理解.
思考?