本文(ASP.Net Core 2.1 Razor pages)之后,我遇到了我的代码问题。 在访问Student \ Student.cshtml.cs页面的GitHub存储库后,作者上传了一个包含#if /#endif语句的页面,但没有(在本文中)解释如何使用它们。 (Here is the sample doc)
搜索返回的唯一链接似乎使我回到了Miscrosoft.com。 (尽管访问了许多链接,但我对这些链接的工作方式仍然不知所措,说了很多东西却没有说出什么似乎是微软的趋势)
我发现的隐含含义是#If /#endif语句正在寻找某个位置的配置文件中定义的值?但是示例代码没有(对我来说很明显)没有引用配置文件。
您能否通过示例代码告诉我? 我想确保可以消除#if /#Endif语句,这可能是导致我的问题的原因。 谢谢
答案 0 :(得分:0)
from tkinter import *
from tkinter import ttk
from functools import partial
root = Tk()
root.title('test')
mainframe = ttk.Frame(root, padding='1')
mainframe.grid(column=0, row=0)
root.resizable(False, False)
root.geometry('800x400')
items = [
{
'name' : '1',
'text' : '0000',
},{
'name' : '2',
'text' : '0020',
},{
'name' : '3',
'text' : '0040',
},
]
rcount = 1
for rcount, item in enumerate(items, start=1):
ttk.Button(mainframe, text=item['text'],
command=partial(print,item['text'])).grid(column=1, row=rcount, sticky=W)
root.mainloop()
和#if
是C#预处理程序指令。 C#预处理程序指令用于帮助条件编译。
如果您链接的源代码是line 29,则#endif
,line 33上有#if SortFilterPage
,{{3}上是#else
}}。第29行表示如果定义了#endif
,则编译将包括第30至32行,而不包括第34行。类似地,编译后的代码将包括第117至168行。
另一方面,如果在编译过程中未定义SortFilterPage
,则将不包含第30至32行进行编译,第117至168行也将不包含在内,但第34行将包含在内。
您会注意到,SortFilterPage
实际上是由line 35处的SortFilterPage
指令在源代码中定义的。但是您可以删除该定义,而在使用line 1运行编译时定义它。
您可以将第1行更改为#define
。这将意味着#define SortFilter
将是未定义的(假设它不是在通过命令行工具进行编译时定义的)。在这种情况下,将更改要包括哪些行以进行编译。例如,第81至114行将包含在已编译的代码中。
更多读数: