diff --git a/src/App.js b/src/App.js
index 52a5b10..26a70c6 100644
--- a/src/App.js
+++ b/src/App.js
@@ -44,7 +44,7 @@ import JapanesePage from './Pages/Japan/JapanesePage';
import EquipmentPage from './Pages/Radio/equipmentPage';
import { languages, getLanguage } from './Language/Language';
-import { elmRoutes, japaneseRoutes } from './Routers';
+import { japaneseRoutes, programmingLanguageRoutes } from './Routers';
function App() {
const language = getLanguage();
@@ -57,6 +57,8 @@ function App() {
'software': ,
};
+
+
const fieldDaysRoutes = languages.map(lang => {
const dates = ['20231111', '20231230', '20240121'];
return dates.map(date => {
@@ -66,6 +68,14 @@ function App() {
});
}).flat();
+ const componentRoutes = languages.map(lang => {
+ const components = ['diode'];
+ return components.map(component => {
+ const path = `/${lang}/radio/component/${component}`;
+ return } />;
+ });
+ }).flat();
+
const equipmentRoutes = languages.map(lang => {
const equipments = [
{
@@ -116,7 +126,8 @@ function App() {
{generatedRoutes}
{/* Software */}
- {elmRoutes}
+ {programmingLanguageRoutes}
+
}>
}>
}>
diff --git a/src/Pages/Software/SoftwareMain.js b/src/Pages/Software/SoftwareMain.js
index 3d3753e..55b7337 100644
--- a/src/Pages/Software/SoftwareMain.js
+++ b/src/Pages/Software/SoftwareMain.js
@@ -15,7 +15,10 @@ const SoftwareMain = () => {
{getString('code_pages')}
{getString('code_pages_intro')}
- Elm
+
{getString('education')}
diff --git a/src/Pages/Software/csharp/CSharpPage.js b/src/Pages/Software/csharp/CSharpPage.js
new file mode 100644
index 0000000..b9335e7
--- /dev/null
+++ b/src/Pages/Software/csharp/CSharpPage.js
@@ -0,0 +1,16 @@
+import React from 'react';
+import Breadcrumbs from '../../../UI/Breadcrumbs'
+import MarkdownPage from '../../markdownPage'
+
+const CSharpPage = ({ mdPath }) => {
+ return (
+
+
+ {['software', 'c#']}
+
+
+
+ )
+}
+
+export default CSharpPage;
\ No newline at end of file
diff --git a/src/Pages/Software/csharp/en/main.md b/src/Pages/Software/csharp/en/main.md
new file mode 100644
index 0000000..1431470
--- /dev/null
+++ b/src/Pages/Software/csharp/en/main.md
@@ -0,0 +1,6 @@
+## C#
+
+#### Basics
+
+* [types](./types)
+* [strings](./strings)
\ No newline at end of file
diff --git a/src/Pages/Software/csharp/en/strings.md b/src/Pages/Software/csharp/en/strings.md
new file mode 100644
index 0000000..3828dd1
--- /dev/null
+++ b/src/Pages/Software/csharp/en/strings.md
@@ -0,0 +1,49 @@
+## Strings
+
+#### Verbatim string with @:
+
+Preserves whitespace and characters like '\' do not need to be escaped.
+
+```c#
+Console.WriteLine(@" c:\source\repos
+ (this is where your code goes)");
+```
+
+Output:
+```
+> c:\source\repos
+> (this is where your code goes)
+```
+
+#### Escaped Unicode
+
+Use the **\u** plus a four-character code to represent Unicode characters (UTF-16) in a string.
+
+[Japanese UTF-16 table](http://www.rikai.com/library/kanjitables/kanji_codes.unicode.shtml)
+
+```c#
+Console.WriteLine("\u3053\u3093\u306B\u3061\u306F World!");
+```
+
+Output (UTF-16):
+```
+> こんにちは World!
+```
+
+```c#
+// To generate Japanese invoices:
+Console.Write("\n\n\u65e5\u672c\u8a9e\u306e\u8acb\u6c42\u66f8\u3092\u751f\u6210\u3059\u308b\u306b\u306f\uff1a");
+```
+
+Output (UTF-16):
+```
+> 日本語の請求書を生成するには:
+```
+
+#### String interpolation
+
+Can be combined with verbatim strings.
+
+```c#
+Console.WriteLine($@"C:\Output\{projectName}\Data");
+```
\ No newline at end of file
diff --git a/src/Pages/Software/csharp/en/types.md b/src/Pages/Software/csharp/en/types.md
new file mode 100644
index 0000000..dbba32e
--- /dev/null
+++ b/src/Pages/Software/csharp/en/types.md
@@ -0,0 +1,10 @@
+## Types
+
+Float Type Precision
+
+float ~6-9 digits 0.25F
+double ~15-17 digits 0.25
+decimal 28-29 digits 0.25M
+
+Both lowercase 'f' or 'F' can be used, same for 'm' and 'M'.
+
diff --git a/src/Pages/Software/elm/en/main.md b/src/Pages/Software/elm/en/main.md
index 9559435..23cf170 100644
--- a/src/Pages/Software/elm/en/main.md
+++ b/src/Pages/Software/elm/en/main.md
@@ -1,4 +1,4 @@
-### Elm
+## Elm
* [Formatting](./formatting)
* [Maybe.andThen](./maybeandthen)
diff --git a/src/Routers.js b/src/Routers.js
index adc58c9..ce667e1 100644
--- a/src/Routers.js
+++ b/src/Routers.js
@@ -2,6 +2,7 @@ import React from 'react';
import { Route } from 'react-router-dom';
import { languages } from './Language/Language';
import JapanesePage from './Pages/Japan/JapanesePage';
+import CSharpPage from './Pages/Software/csharp/CSharpPage';
import ElmPage from './Pages/Software/elm/ElmPage';
@@ -16,17 +17,26 @@ export const japaneseRoutes = languages.map(lang => {
}).flat();
// Software
-export const elmRoutes = languages.map(lang => {
+export const programmingLanguageRoutes = languages.map(lang => {
// Main page.
- const main = } />
+ const mainCSharp = } />
+ const mainElm = } />
// Pages within Elm.
- const md = ['dry', 'formatting', 'maybeandthen', 'maybemap'];
- const entries = md.map(entry => {
+ let md = ['strings', 'types'];
+ const entriesCSharp = md.map(entry => {
+ const path = `/${lang}/software/csharp/${entry}`;
+ const mdPath = `Software/csharp/${lang}/${entry}.md`;
+ return } />;
+ });
+
+ // Pages within Elm.
+ md = ['dry', 'formatting', 'maybeandthen', 'maybemap'];
+ const entriesElm = md.map(entry => {
const path = `/${lang}/software/elm/${entry}`;
const mdPath = `Software/elm/${lang}/${entry}.md`;
return } />;
});
- return [main, ...entries];
+ return [mainCSharp, mainElm, ...entriesCSharp, ...entriesElm];
}).flat();