Skip to content

Commit f2114e1

Browse files
authored
Merge pull request #482 from ikesnowy/dev
3.1 Finished
2 parents 7b614f5 + 59f29de commit f2114e1

File tree

328 files changed

+446560
-339
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

328 files changed

+446560
-339
lines changed

1 Fundamental/1.2/Commercial/Date.cs

Lines changed: 24 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,32 @@
22

33
namespace Commercial
44
{
5+
/// <summary>
6+
/// 日期类。
7+
/// </summary>
58
public class Date : IComparable<Date>
69
{
7-
public int Month { get; } // 月
8-
public int Day { get; } // 日
9-
public int Year { get; } // 年
10+
/// <summary>
11+
/// 月份。
12+
/// </summary>
13+
/// <value>月份数据。</value>
14+
public int Month { get; }
15+
/// <summary>
16+
/// 日期。
17+
/// </summary>
18+
/// <value>日期数据。</value>
19+
public int Day { get; }
20+
/// <summary>
21+
/// 年份。
22+
/// </summary>
23+
/// <value>年份数据。</value>
24+
public int Year { get; }
1025

1126
/// <summary>
1227
/// 构造函数。
1328
/// </summary>
1429
/// <param name="date">形如 "05/31/2017" 的字符串。</param>
30+
/// <exception cref="ArgumentException">输入日期格式不正确时抛出异常。</exception>
1531
public Date(string date)
1632
{
1733
string[] a = date.Split('/');
@@ -36,9 +52,9 @@ public Date(int m, int d, int y)
3652
}
3753

3854
/// <summary>
39-
/// 返回形如 05/22/2017 的字符串
55+
/// 将日期转换成字符串,格式为 dd/mm/yyyy
4056
/// </summary>
41-
/// <returns></returns>
57+
/// <returns>形如 05/22/2017 的字符串。</returns>
4258
public override string ToString()
4359
{
4460
return this.Month + "/" + this.Day + "/" + this.Year;
@@ -48,7 +64,7 @@ public override string ToString()
4864
/// 比较两个日期是否相同。
4965
/// </summary>
5066
/// <param name="obj">需要比较的另一个对象。</param>
51-
/// <returns></returns>
67+
/// <returns>相等返回 <c>true</c>,否则返回 <c>false</c>。</returns>
5268
public override bool Equals(object obj)
5369
{
5470
if (obj == this)
@@ -64,7 +80,7 @@ public override bool Equals(object obj)
6480
/// <summary>
6581
/// 获取日期的哈希值。
6682
/// </summary>
67-
/// <returns></returns>
83+
/// <returns>日期的哈希值。</returns>
6884
public override int GetHashCode()
6985
{
7086
int hash = 17;
@@ -78,7 +94,7 @@ public override int GetHashCode()
7894
/// 比较两个日期的先后。
7995
/// </summary>
8096
/// <param name="other">另一个日期。</param>
81-
/// <returns></returns>
97+
/// <returns><paramref name="other"/> 较后时返回大于 0 的数,反之返回小于 0 的数,相等返回 0。</returns>
8298
public int CompareTo(Date other)
8399
{
84100
if (this.Year > other.Year)

1 Fundamental/1.2/Commercial/Transaction.cs

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,26 @@
33

44
namespace Commercial
55
{
6+
/// <summary>
7+
/// 交易记录类。
8+
/// </summary>
69
public class Transaction : IComparable<Transaction>
710
{
11+
/// <summary>
12+
/// 客户姓名。
13+
/// </summary>
14+
/// <value>客户姓名。</value>
815
public string Who { get; }
16+
/// <summary>
17+
/// 交易日期。
18+
/// </summary>
19+
/// <value>交易日期。</value>
20+
/// <seealso cref="Date"/>
921
public Date When { get; }
22+
/// <summary>
23+
/// 交易金额。
24+
/// </summary>
25+
/// <value>交易金额。</value>
1026
public double Amount { get; }
1127

1228
/// <summary>
@@ -66,6 +82,12 @@ public int CompareTo(Transaction other)
6682
/// </summary>
6783
public class WhoOrder : IComparer<Transaction>
6884
{
85+
/// <summary>
86+
/// 比较两个 <see cref="Transaction"/> 的姓名。
87+
/// </summary>
88+
/// <param name="x">需要比较的第一个记录。</param>
89+
/// <param name="y">需要比较的第二个记录。</param>
90+
/// <returns><paramref name="x"/> 姓名靠后时返回大于 0 的数,反之返回小于 0 的数,相等返回 0。</returns>
6991
int IComparer<Transaction>.Compare(Transaction x, Transaction y)
7092
{
7193
return x.Who.CompareTo(y.Who);
@@ -77,6 +99,12 @@ int IComparer<Transaction>.Compare(Transaction x, Transaction y)
7799
/// </summary>
78100
public class WhenOrder : IComparer<Transaction>
79101
{
102+
/// <summary>
103+
/// 比较两个 <see cref="Transaction"/> 的交易时间。
104+
/// </summary>
105+
/// <param name="x">需要比较的第一个记录。</param>
106+
/// <param name="y">需要比较的第二个记录。</param>
107+
/// <returns><paramref name="x"/> 时间靠后时返回大于 0 的数,反之返回小于 0 的数,相等返回 0。</returns>
80108
int IComparer<Transaction>.Compare(Transaction x, Transaction y)
81109
{
82110
return x.When.CompareTo(y.When);
@@ -88,6 +116,12 @@ int IComparer<Transaction>.Compare(Transaction x, Transaction y)
88116
/// </summary>
89117
public class HowMuchOrder : IComparer<Transaction>
90118
{
119+
/// <summary>
120+
/// 比较两个 <see cref="Transaction"/> 的交易金额。
121+
/// </summary>
122+
/// <param name="x">需要比较的第一个记录。</param>
123+
/// <param name="y">需要比较的第二个记录。</param>
124+
/// <returns><paramref name="x"/> 金额较大时返回大于 0 的数,反之返回小于 0 的数,相等返回 0。</returns>
91125
int IComparer<Transaction>.Compare(Transaction x, Transaction y)
92126
{
93127
return x.Amount.CompareTo(y.Amount);
@@ -118,7 +152,7 @@ public override bool Equals(object obj)
118152
/// <summary>
119153
/// 返回交易信息的哈希值。
120154
/// </summary>
121-
/// <returns></returns>
155+
/// <returns>交易信息的哈希值。</returns>
122156
public override int GetHashCode()
123157
{
124158
int hash = 1;

1 Fundamental/1.2/Geometry/Interval1D.cs

Lines changed: 27 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,33 @@ namespace Geometry
99
/// </summary>
1010
public class Interval1D
1111
{
12+
/// <summary>
13+
/// 优先以起点升序排序,起点相同时按照终点升序排序。
14+
/// </summary>
15+
/// <value>优先以起点升序排序,起点相同时按照终点升序排序。</value>
1216
public static readonly Comparer<Interval1D> Min_Order = new MinEndpointComparer();
17+
/// <summary>
18+
/// 优先以终点升序排序,起点相同时按照起点升序排序。
19+
/// </summary>
20+
/// <value>优先以终点升序排序,起点相同时按照起点升序排序。</value>
1321
public static readonly Comparer<Interval1D> Max_Order = new MaxEndpointComparer();
22+
/// <summary>
23+
/// 以区间长度升序排序。
24+
/// </summary>
25+
/// <value>以区间长度升序排序。</value>
1426
public static readonly Comparer<Interval1D> Length_Order = new LengthComparer();
1527

28+
/// <summary>
29+
/// 区间起点。
30+
/// </summary>
31+
/// <value>区间起点。</value>
32+
/// <remarks>这个属性是只读的。</remarks>
1633
public double Min { get; }
34+
/// <summary>
35+
/// 区间终点。
36+
/// </summary>
37+
/// <value>区间终点。</value>
38+
/// <remarks>这个属性是只读的。</remarks>
1739
public double Max { get; }
1840

1941
/// <summary>
@@ -56,7 +78,7 @@ public double Length()
5678
/// 判断目标区间是否被本区间包含。
5779
/// </summary>
5880
/// <param name="that">需要判断是否被包含的区间。</param>
59-
/// <returns></returns>
81+
/// <returns>若 <paramref name="that"/> 被本区间包含则返回 <c>true</c>,否则返回 <c>false</c>。</returns>
6082
public bool Contains(Interval1D that)
6183
{
6284
return this.Min < that.Min && this.Max > that.Max;
@@ -66,7 +88,7 @@ public bool Contains(Interval1D that)
6688
/// 目标值是否处在区域内。如果目标值在区域内则返回 True,否则返回 False。
6789
/// </summary>
6890
/// <param name="x">需要判断的值。</param>
69-
/// <returns></returns>
91+
/// <returns>若 <paramref name="x"/> 被本区间包含则返回 <c>true</c>,否则返回 <c>false</c>。</returns>
7092
public bool Contains(double x)
7193
{
7294
return x >= this.Min && x <= this.Max;
@@ -100,7 +122,7 @@ public void Draw(Graphics g, int y)
100122
/// <summary>
101123
/// 将区域转换为 string,返回形如 "[lo, hi]" 的字符串。
102124
/// </summary>
103-
/// <returns></returns>
125+
/// <returns>形如 "[<see cref="Min"/>, <see cref="Max"/>]" 的字符串。</returns>
104126
public override string ToString()
105127
{
106128
string s = "[" + this.Min + ", " + this.Max + "]";
@@ -111,7 +133,7 @@ public override string ToString()
111133
/// 判断两个区间是否相等。
112134
/// </summary>
113135
/// <param name="obj">相比较的区间。</param>
114-
/// <returns></returns>
136+
/// <returns>如果区间相等则返回 <c>true</c>,否则返回 <c>false</c>。</returns>
115137
public override bool Equals(object obj)
116138
{
117139
if (obj == this)
@@ -133,7 +155,7 @@ public override bool Equals(object obj)
133155
/// <summary>
134156
/// 返回区间的哈希代码。
135157
/// </summary>
136-
/// <returns></returns>
158+
/// <returns>返回区间的哈希代码。</returns>
137159
public override int GetHashCode()
138160
{
139161
int hash1 = this.Min.GetHashCode();

1 Fundamental/1.2/Geometry/Interval2D.cs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ public Interval2D(Interval1D x, Interval1D y)
2525
/// 判断两个平面是否相交。
2626
/// </summary>
2727
/// <param name="that">需要判断的另一个平面。</param>
28-
/// <returns></returns>
28+
/// <returns>相交则返回 <c>true</c>,否则返回 <c>false</c>。</returns>
2929
public bool Intersects(Interval2D that)
3030
{
3131
if (!this.X.Intersect(that.X))
@@ -45,7 +45,7 @@ public bool Intersects(Interval2D that)
4545
/// 判断目标区间是否被本区间包含。
4646
/// </summary>
4747
/// <param name="that">需要判断是否被包含的区间。</param>
48-
/// <returns></returns>
48+
/// <returns>如果 <paramref name="that"/> 被包含,则返回 <c>true</c>,否则返回 <c>false</c>。</returns>
4949
public bool Contains(Interval2D that)
5050
{
5151
return this.X.Contains(that.X) && this.Y.Contains(that.Y);
@@ -55,7 +55,7 @@ public bool Contains(Interval2D that)
5555
/// 判断一个二维点是否在该平面范围内。
5656
/// </summary>
5757
/// <param name="p">需要判断的二维点。</param>
58-
/// <returns></returns>
58+
/// <returns>如果 <paramref name="p"/> 被包含,则返回 <c>true</c>,否则 <c>false</c>。</returns>
5959
public bool Contains(Point2D p)
6060
{
6161
return (this.X.Contains(p.X) && this.Y.Contains(p.Y));
@@ -64,7 +64,7 @@ public bool Contains(Point2D p)
6464
/// <summary>
6565
/// 计算平面范围的面积。
6666
/// </summary>
67-
/// <returns></returns>
67+
/// <returns>平面范围的面积。</returns>
6868
public double Area()
6969
{
7070
return this.X.Length() * this.Y.Length();
@@ -84,7 +84,7 @@ public void Draw(Graphics g)
8484
/// <summary>
8585
/// 返回形如“[xmin, xmax] x [ymin, ymax]”的字符串。
8686
/// </summary>
87-
/// <returns></returns>
87+
/// <returns>形如 "[xmin, xmax] x [ymin, ymax]" 的字符串。</returns>
8888
public override string ToString()
8989
{
9090
return this.X + "x" + this.Y;
@@ -94,7 +94,7 @@ public override string ToString()
9494
/// 判断两个二维区间是否相等。
9595
/// </summary>
9696
/// <param name="obj">需要比较的另一个区间。</param>
97-
/// <returns></returns>
97+
/// <returns>相等则返回 <c>true</c>,否则返回 <c>false</c>。</returns>
9898
public override bool Equals(object obj)
9999
{
100100
if (obj == this)
@@ -119,7 +119,7 @@ public override bool Equals(object obj)
119119
/// <summary>
120120
/// 获取哈希值
121121
/// </summary>
122-
/// <returns></returns>
122+
/// <returns>2D 区间的哈希值。</returns>
123123
public override int GetHashCode()
124124
{
125125
int hash1 = this.X.GetHashCode();

0 commit comments

Comments
 (0)